2013-08-30 58 views
1

我试图使用web2py的调度程序运行后台作业。 除了处理作业之外,我还需要保存提交用户的信息。web2py - 获取当前正在运行的任务的ID

我创建了一个users_task表,用于存储提交的user_name和task_id。

下面是示例代码(在scheduler.py),

def task_add(user_name): 
task_id = my_id # get the current task id ?? 
db.person.insert(name=user_name,task=task_id) 
# do something 

在我需要获得当前任务的ID码的2号线。

,我排队使用任务,

scheduler.queue_task('task_add', pvars=dict(user_name)) 

是否有可能获得当前正在运行的任务的ID? 此外,请建议是否有其他方式实现相同。

回答

0

那么,在挖掘源代码后,我找到了解决方案。 在胶子/ scheduler.py,

def executor(queue, task, out): 
    W2P_TASK = Storage({'id' : task.task_id, 'uuid' : task.uuid}) 
    _env.update({'W2P_TASK' : W2P_TASK}) 

W2P_TASK是一个环境变量。所以,要获得任务ID,

task_id = W2P_TASK.id 
0

这可能帮助:。

current_task = DB(!db.scheduler_task.task_name == 'task_add',db.scheduler_task.status = '失败')选择()最后() current_task_id = current_task .id

有关当前正在运行的任务的所有详细信息都可以从db.scheduler_task表中获取,并且可以从db.scheduler_run表中获取有关任务输出的信息。

+0

感谢您的回复,我猜这个解决方案在只有一个工作人员或一个正在运行的任务时工作。但是如果有很多工人/许多任务同时运行呢? – tom

相关问题