def get_fstates(decay): global db global br_cutoff if decay['branching'] < br_cutoff: return if decay['branching'] > 1: return if len(decay['childs'])>max_decay_chain: return if len(decay['childs'])<1: return #print decay['history'], decay['products'] db_dec = Decay(parent = decay['parent'], childs = decay['childs'], branching = decay["branching"]) #db_dec.printdecay() #db_dec.save() try: db_dec.save() except: print "Failed to save decay!" db_dec.printdecay() return
work_copy = deepcopy(decay) #work_copy['history'] = "{} --> {}".format( # parent, ' '.join(decay['products'])) get_fstates(work_copy) end = datetime.now() print "{}\t{}".format(parent, end-start) if __name__ == "__main__": from fstate_lazy import get_fstates #from fstate import get_fstates connect(db_name) Decay.objects().delete() #fstates.drop() #fstates.create_index("fstate") #fstates.create_index("scheme", unique=True) #do_work(test_set['decays'].keys()) print "DB build started on {}.".format(datetime.now()) start = datetime.now() workers = cpu_count() p = Pool(processes=workers) p.map(do_work, get_jobs(workers))