Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 任务处理程序中的芹菜任务id_Python_Django_Celery_Djcelery - Fatal编程技术网

Python 任务处理程序中的芹菜任务id

Python 任务处理程序中的芹菜任务id,python,django,celery,djcelery,Python,Django,Celery,Djcelery,所以我有一个任务,创建一个工作目录,并在那里完成所有工作。 任务从服务器A调用,并在工作服务器上执行 我需要确保任务完成后删除工作目录/取消 我添加了一个任务撤销处理程序,如下所示: @task def my_task(value): task_id = current_task.request.id work_dir = os.path.join(BASE_WORK_DIR, task_id) os.makedirs(work_dir) try:

所以我有一个任务,创建一个工作目录,并在那里完成所有工作。 任务从服务器A调用,并在工作服务器上执行

我需要确保任务完成后删除工作目录/取消

我添加了一个任务撤销处理程序,如下所示:

@task
def my_task(value):

    task_id  = current_task.request.id
    work_dir = os.path.join(BASE_WORK_DIR, task_id)
    os.makedirs(work_dir)

    try:
        # Do work...
    finally:
        shutil.rmtree(work_dir)


@task_revoked.connect(sender=my_task)
def my_task_revoked_handler(*args, **kwargs):
    # FIXME: delete work_dir

    print args
    # ()

    print kwargs
    # {'terminated': True, 'signal': <Signal: Signal>, 'expired': False, 'sender': <@task: myapp.core.tasks.my_task>, 'signum': '15'}
@任务
定义我的任务(值):
task\u id=当前的\u task.request.id
work\u dir=os.path.join(基本\u工作\u dir,任务\u id)
os.makedirs(工作目录)
尝试:
#做工作。。。
最后:
shutil.rmtree(工作目录)
@任务\u已撤销。连接(发件人=我的任务)
定义我的任务处理程序(*args,**kwargs):
#修正:删除工作目录
打印参数
# ()
打印kwargs
#{'terminated':True,'signal':,'expired':False,'sender':,'signum':'15'}
我的问题是,当服务器A取消任务时,我无法对已撤销处理程序中的工作目录进行清理,因为它没有任务id

有没有办法从这个特定的信号处理程序获取任务id? 有些人有它们,我查看了它们发出的来源,出于某种原因,这个信号没有提供任务id

提供的
sender
任务包含一个trace\u任务函数:
{'''u trace\u\u':}
,但我看不出如何使用它,因为函数本身需要一个任务id


任何其他想法都是受欢迎的。

我认为这里发生的事情是,您使用的是一个旧版本的芹菜,它不支持第一个“请求”论点

增加这一点的上游问题是[1];在此之前,我认为你运气不好,很遗憾,没有办法获得任务id


[1]

我想迟做总比不做强=)