def taustaTulokset(self): if settings.TAUSTALASKENTA: # Tulosten laskenta taustalla threadissa. log.disableLogging() laskeeName = str(self.kisa.id) + '_' + str(self.id) + '_laskee' laskee = cache.get( laskeeName) # Tarkistetaan ollaanko tuloksia jo laskemassa. if not laskee: thread.start_new_thread(self.laskeTulokset, ())
def laskeTulokset(self) : log.disableLogging() cacheName = str(self.kisa.id)+'_'+str(self.id)+'_tulokset' laskeeName = str(self.kisa.id)+'_'+str(self.id)+'_laskee' laskee=cache.get( laskeeName ) if settings.TAUSTALASKENTA: while laskee : # Odotetaan että toinen threadi laskee tulokset time.sleep(0.4) # Tarkistetaan 400ms välein laskee=cache.get( laskeeName ) tulokset=cache.get( cacheName ) if not tulokset or not settings.CACHE_TULOKSET : # ei cachea -> lasketaan cache.set( cacheName , 0 ) # Tunnistetaan laskennanaikainen tallennus cache.set( laskeeName , True , 30) # Merkitään laskennan olevan käynnissä syotteet=Syote.objects.filter(maarite__osa_tehtava__tehtava__sarja=self) if syotteet: onjoo=1 # Pakotetaan syotteiden haku tähän. tulokset = laskeSarja(self,syotteet) cache.delete( laskeeName ) # Merkitään laskennan olevan valmis ctulos = cache.get( cacheName ) # Muutoksia laskennan aikana if ctulos == None : return tulokset # Jätetään cacheamatta. # Asetetaan cache. cache.set( cacheName , tulokset, settings.CACHE_TULOKSET_TIME) return tulokset
def taustaTulokset(self) : if settings.TAUSTALASKENTA: # Tulosten laskenta taustalla threadissa. log.disableLogging() laskeeName = str(self.kisa.id)+'_'+str(self.id)+'_laskee' laskee=cache.get( laskeeName ) # Tarkistetaan ollaanko tuloksia jo laskemassa. if not laskee: thread.start_new_thread( self.laskeTulokset,() )