4

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

现在我有一个视图,我可以在其中选择一些参数,用 request.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 框架。

有人有建议吗?

4

1 回答 1

12

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

@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')
于 2013-08-27T11:43:33.207 回答