在Django视图方法中调用芹菜任务?

时间:2013-08-27 11:32:57

标签: python django celery

我有两个Pythonapplications'前端'和'fv'。在我的fv应用程序中是我的tasks.py文件,在我的前端应用程序是我的views.py文件来呈现我的视图。

现在我有一个视图,我可以选择一些参数来获取请求.POST。现在我想调用一个任务方法FunctionRDynamic并从我的视图表单中传递参数。

views.py中的方法:

if request.method == 'POST':
        form1 = dataproviderInstrumentForm(request.POST)
        form2 = dynamicTimeseriesForm(request.POST)

        if form1.is_valid() or form2.is_valid(): 
            filters = form2.cleaned_data['filter']
            estimator = form2.cleaned_data['estimator']
            windowSize = form2.cleaned_data['windowSize']

            FunctionRDynamic.delay(estimator, windowSize, timeseries)

FunctionRDynamic是我在oder应用程序的tasks.py文件中的方法,但是这个方法不会执行。

对于我的任务,我使用芹菜。所有都是用Python编写的,我使用Django作为mvc框架。

有人有建议吗?

1 个答案:

答案 0 :(得分:8)

据我所知,这是解决方案。在定义芹菜任务时,请执行以下操作:

@celery.task
def file_transfer(password, source12, destination):
    # Do stuffs with paramters

现在在views.py执行此操作:

def test(View):
    # Get the data from post
    if request.method == 'POST':
        name = request.POST['name']
        # And get all the variable you need for the tasks

        # Now call the task like this
        file_transfer.delay(name, 'test', 'test')