Hi All,
I am facing issues with handling several request in parallel from same user.
When I submit one job and then simultaneously try to open my server
homepage in new tab, it waits until first one finishes. I went through some
earlier answers regarding this and came to know that there is some issue
with session but I am not aware how to resolve this using session.forget()
or where to put this in my code. I tried to put this in one function in my
code but it doesn't allow my job to run further.
I have also used session variable in my views/html file...
I have attached my sample code...
Thanks
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.
def index():
values= ['','MMP2', 'MMP3']
form=FORM(TABLE(TR('Select name:',SELECT(values,requires=IS_NOT_EMPTY("please choose one name"),_name='protease',_onchange="jQuery.post('%s',{'protease':jQuery(this).val()})" % URL('mmp'))),
TR('Uniprot ID:',INPUT(_name='uniprot')),
TR("",INPUT(_type="submit",_value="SUBMIT",_onclick="javascript:$.blockUI({message: $('#domMessage') });"))))
form.element('input[type=submit]',replace=lambda button: CAT(button, INPUT(_class="btn",_type="reset",_value="Reset")))
if form.process().accepted:
if form.vars.uniprot <> '':
session.uniprot = form.vars.uniprot
redirect(URL('result'))
else:
response.flash = T("Enter Uniprot ID or Fasta Seq or upload PDB file or enter PDB ID:")
return dict(form=form)
def uniprot_merops():
mmpn=""
if session.protease == "MMP2":
mmpn = "P08253"
elif session.protease == "MMP3":
mmpn = "P08254"
geneid=[]
genemmpid=[]
idmapfile = os.path.join(request.folder, 'private', 'idmapmapping_new.data')
with open(idmapfile, 'rU') as id:
for row in id.readlines():
idmap = row.strip().split('\t')
if session.uniprot == idmap[0] and idmap[1] == 'GeneID':
geneid.append(idmap[2])
if mmpn == idmap[0] and idmap[1] == 'GeneID':
genemmpid.append(idmap[2])
id.close()
if len(genemmpid) > 0:
geneid7 = genemmpid[0].strip()
else:
geneid7 = 0
if len(geneid) > 0:
geneid3 = geneid[0].strip()
else:
geneid3 = 0
temp4 = os.path.join(request.folder, 'private')
dirpath = tempfile.mkdtemp(dir=temp4)
url1 = 'http://www.uniprot.org/uniprot/' + session.uniprot + '.fasta'
req_seq = urllib2.Request(url1)
resp_seq = urllib2.urlopen(req_seq).read()
t = resp_seq.split("\n")
t1 = t[1:-1]
sequence = ''.join(t1)
#predict cleavage
temp = os.path.join(request.folder, dirpath)
f1 = tempfile.NamedTemporaryFile(suffix='.fa',delete=False, dir=temp)
f1.write(resp_seq)
f1.seek(0)
f1.close()
tempo1 = os.path.join(request.folder, temp,f1.name)
cmd1 = os.path.join(request.folder, 'private', 'Run.MMP_cuts_pred_fa_HT')
cmd2 = os.path.join(request.folder, 'private')
cmd3 = str(session.protease)
proc = subprocess.Popen([cmd1,tempo1,cmd3], cwd=temp)
proc.communicate()
cleavage_result = glob.glob(os.path.join(request.folder, temp, '*.dat'))
cleavage_res = []
for line in open(cleavage_result[0]):
cleavage_res.append(line.rstrip('\n').split())
os.unlink(cleavage_result[0])
return dict(fasta=resp_seq, seq=sequence, cleavage_res=cleavage_res, mmp_no=cmd3, geneid7=geneid7, temp=temp)
def result():
return uniprot_merops()