if there are no records in the scheduler_worker, the scheduler is not running. Please check your "permanent daemon" solution to see if it's running and what it logs.
On Monday, September 29, 2014 4:37:53 PM UTC+2, Pengfei Yu wrote: > > Hi, > > I have a web application hosted on AWS EC2 with Apache2. I plan to use > web2py scheduler for some heavy tasks with user input files. Now I only use > some small tasks like "wc -c" to test the functions of scheduler. It seems > that the submitted tasks are always QUEUED and the status never changes. > After searching the google group, I added "db.commit()" right after > "scheduler.queue_task()", but it still cannot work. > > I've already Installed the scheduler as a permanent daemon on Linux and > started "web2py-scheduler" using "sudo start web2py-scheduler". > > Here is part of my codes in default.py: > def index(): > > response.flash = T("Welcome to web2py!") > form=SQLFORM(db.project,fields=['name', > 'Genome',"File_type","InputFile"]) > if request.vars.InputFile!=None and > request.vars.InputFile.filename.split(".")[-1]!=request.vars.File_type: > response.flash = 'The input file must match file type, please fill > again' > return dict(form=form) > if request.vars.InputFile!=None: > form.vars.processID="0" > if form.process().accepted: > response.flash = 'form accepted' > filepath = form.vars.InputFile > command = "wc -c > /home/www-data/web2py/applications/BamToVcf/uploads/"+filepath > p = scheduler.queue_task('run',[command]) > db.commit() > row = db(db.project.InputFile==filepath).select().first() > row.update_record(processID = p.uuid) > redirect(URL("progress",args=[p.uuid])) > elif form.errors: > response.flash = 'form has errors' > else: > response.flash = "please fill out the form" > return dict(form=form) > > > def progress(): > processID = request.args(0) > project = db.project(db.project.processID==processID) > status=scheduler.task_status(processID,output=True) > start_time = utc_to_local(status.scheduler_task.start_time) > return dict(project=project,p=status,start_time=start_time) > > def list(): > rows = db(db.project.id>0).select() > return dict(rows=rows) > > And the code in scheduler.py in Models folder: > from gluon.scheduler import Scheduler > import subprocess > from collections import OrderedDict > import os > > def run(command): > p = subprocess.Popen(command, > shell=False, > stdout=subprocess.PIPE, > stderr=subprocess.PIPE) > startTime = time.time() > stdout, stderr = p.communicate() > endTime = time.time() > return (command, p.returncode, stdout, stderr, round(endTime - > startTime)) > > def demo2(a,b): > return a+b > > scheduler = Scheduler(db,dict(run=run,demo2=demo2)) > > From the database page ("~/%app/appadmin/index"), I can see the records of > tasks in db.scheduler_task table but no record in db.scheduler_worker and > db.scheduler_run table. > > Could any one help me figure out the problem? > > Thanks very much! > > -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.