BTW: it has been merged . You can safely take scheduler.py from master and overwrite your own if you want to avid specifying next_run_time
On Wednesday, September 21, 2016 at 5:57:44 PM UTC+2, Bernardo Leon wrote: > > Niphlod I will use postgresql in production and your solution as well. > Thank you for helping me! ;) > > El miércoles, 21 de septiembre de 2016, 2:33:30 (UTC-5), Niphlod escribió: >> >> that error is due - mostly - when the backend is too much pressured (i.e. >> you're using sqlite, or too many workers, or a too low heatbeat) >> >> this is the fix https://github.com/web2py/web2py/pull/1453 . you can >> subscribe to it to know when it'll be merged. >> >> On Tuesday, September 20, 2016 at 5:38:08 PM UTC+2, Bernardo Leon wrote: >>> >>> Thank you for your reply. Can you reply this thread when the fix is >>> published? >>> >>> I don't know if this is related to the same bug but in my worker process >>> terminal I have this message: >>> >>> ERROR:web2py.scheduler.cedia-Satellite-L55-C#18606: error popping >>> tasks >>> >>> why do I have this error? Thanks. >>> >>> El lunes, 19 de septiembre de 2016, 13:37:05 (UTC-5), Niphlod escribió: >>>> >>>> sorry, a bug slipped in. In the wait for the fix, please use >>>> next_run_time in addition to start_time. >>>> >>>> On Monday, September 19, 2016 at 6:27:28 PM UTC+2, Bernardo Leon wrote: >>>>> >>>>> Hi, I am trying to run tasks in the future based on a time the user >>>>> specifies but as soon as the task is queued it is executed, what am I >>>>> doing >>>>> wrong? >>>>> >>>>> I am using web2py Version 2.14.6-stable+timestamp.2016.05.10.00.21.47 >>>>> >>>>> This is my model.db (part of it) >>>>> >>>>> db = DAL('sqlite://recomendadorexpertos.db') >>>>> >>>>> db.define_table('topicos', >>>>> Field('curso', 'reference cursos'), >>>>> Field('nombre', 'string', required=True, length=512), >>>>> Field('palabras_clave', 'text', readable=False, >>>>> required=True, length=2048), >>>>> Field('fecha_inicio_identificacion', 'date', >>>>> required=True, comment=T('Indica la fecha desde la cual se empezará a >>>>> buscar expertos.')), >>>>> Field('fecha_fin_identificacion', 'date', >>>>> required=True, comment=T('Indica la fehca en la cual se publicarán las >>>>> recomendaciónes de expertos.')), >>>>> Field('fecha_fin_publicacion', 'date', >>>>> comment=T('Indica la fecha hasta cuando se publicaran las recomendaciones >>>>> de expertos (opcional)')), >>>>> Field('timestamp_get_tweets_etiquetado', 'datetime', >>>>> readable=False, writable=False), #Para mostrar al usuario desde cuando se >>>>> estan descargando tweets para etiquetado. >>>>> Field('link_descarga_tweets_etiquetado', 'string', >>>>> readable=False, writable=False, length=2048), >>>>> Field('upload_archivo_etiquetado', 'upload', >>>>> length=524288, >>>>> uploadfolder='/var/www/web2py/applications/RecomendadorExpertos/archivos_etiquetados/', >>>>> >>>>> autodelete=True, comment=T('Primero inicie el proceso de descarga de >>>>> tweets >>>>> para este topico, descargue el archivo para etiquetado, etiquetelo y >>>>> subalo >>>>> aqui.'), label=T('Subir archivo etiquetado'), readable=False), #Cambiar >>>>> el >>>>> nombre del archivo que suba a [nombre_topico].csv >>>>> Field('path_modelo', 'string', readable=False, >>>>> writable=False, length=2048), #Ruta del modelo entrenado >>>>> Field('topico_configurado_completamente', 'integer', >>>>> readable=True, writable=False, default=1, >>>>> represent=representTopicoConfigurado), #Sirve para mostrar un check alado >>>>> del archivo subido una vez terminado de generarse el modelo, para que el >>>>> profesor sepa que ya esta todo bien. >>>>> Field('id_scheduler_task_descarga_tweets', 'integer', >>>>> readable=False, writable=False), >>>>> Field('id_scheduler_task_identificacion_expertos', >>>>> 'integer', readable=False, writable=False), >>>>> Field('id_scheduler_task_publicacion_expertos', >>>>> 'integer', readable=False, writable=False)) >>>>> >>>>> >>>>> This is my Scheduler.py >>>>> >>>>> def task_iniciar_descarga_tweets(row): >>>>> return 'descarga de tweets terminada' >>>>> >>>>> def task_iniciar_identificacion_expertos(nombre_topico): >>>>> return 'identificacion de expertos terminada' >>>>> >>>>> def task_publicar_expertos(nombre_topico): >>>>> return 'publicacion de expertos terminada' >>>>> >>>>> dbScheduler = DAL('sqlite://scheduler.db') >>>>> scheduler = Scheduler(dbScheduler, >>>>> tasks={'task_iniciar_descarga_tweets':task_iniciar_descarga_tweets, >>>>> >>>>> 'task_iniciar_identificacion_expertos':task_iniciar_identificacion_expertos, >>>>> >>>>> 'task_publicar_expertos':task_publicar_expertos}) >>>>> >>>>> >>>>> And this is my default.py controller (part of it) >>>>> >>>>> @auth.requires_login() >>>>> def onCreateTopico(form): >>>>> row_task_iniciar_identificacion = >>>>> scheduler.queue_task('task_iniciar_identificacion_expertos', >>>>> pvars={'nombre_topico':form.vars.nombre}, >>>>> start_time=datetime.datetime.combine(form.vars.fecha_inicio_identificacion, >>>>> >>>>> datetime.time.min), >>>>> stop_time=datetime.datetime.combine(form.vars.fecha_fin_identificacion, >>>>> datetime.time.min), retry_failed=3) >>>>> >>>>> row_task_iniciar_publicacion = >>>>> scheduler.queue_task('task_publicar_expertos', >>>>> pvars={'nombre_topico':form.vars.nombre}, >>>>> start_time=datetime.datetime.combine(form.vars.fecha_fin_identificacion, >>>>> datetime.time.min), retry_failed=3) >>>>> >>>>> db(db.topicos.id==form.vars.id >>>>> ).update(id_scheduler_task_identificacion_expertos= >>>>> row_task_iniciar_identificacion.id, >>>>> id_scheduler_task_publicacion_expertos=row_task_iniciar_publicacion.id >>>>> ) >>>>> db.commit() >>>>> >>>>> For instance, if I queue the task "task_iniciar_identificacion_expertos" >>>>> with a future start_time the worker executes this task inmediately, how >>>>> can >>>>> I set the worker to execute this task in the future? >>>>> >>>>> Thank you! >>>>> >>>> -- 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.