2014-04-18 62 views
0
CELERYBEAT_SCHEDULE = { 

    'task every 20 seconds': { 
     'task': 'tasks.function', 
     'schedule': timedelta(seconds=20),  
     'args': [argument] 
    }, 

} 

我的函數有一個參數。但我想稱它爲一名工人的一個以上的論點。我如何在「args:」中調用不同的參數,或者我必須做些什麼來定義多個參數。芹菜節拍日程參數

+0

「我怎麼可以調用不同的參數在‘ARGS:’還是我必須做的定義多個論據「。 - 我不明白:( –

+0

函數(參數) - >什麼是工作者執行。function(arg1),function(arg2)....我要這個:) 對不起,我的英語:) – fatihsucu

回答

0

從您的評論:

function(argument) - >什麼是工人執行。 function(arg1)function(arg2) ....我想這一點:

您可以通過多種方式完成這項工作,對於這樣的說法應該是一個迭代器,例如列表,元組:

1)假設如果你的函數不返回任何值,只是過程ARG ∈參數(例如打印),那麼你應該使用簡單for循環,見下面的例子(閱讀評論):

>>> def f(arg): 
... print arg 
... 
>>> arguments = ('aa', 'bb') # it is a tuple 
>>> for arg in arguments: 
... f(arg) 
... 
aa # f('aa') 
bb # f('bb') 
>>> 

2)如果假設的功能是一樣的東西,它返回arg傳遞給函數處理後的值,你要收集所有的返回值在某些序列例如存儲列表中,你可以調用列表壓縮或地圖,查看下面的例子(閱讀評論):

>>> def f(arg): 
... print "passed arguemnt is: ", arg 
... i = arg * 2 
... return i 
... 
>>> arguments = (11, 22) 
>>> L = map(f, arguments) # (1) using map() 
passed arguemnt is: 11 # f(11) 
passed arguemnt is: 22 # f(22) 
>>> L 
[22, 44] 
>>> L = [f(arg) for arg in arguments] # (2) using list compression 
passed arguemnt is: 11 # f(11) 
passed arguemnt is: 22 # f(22) 
>>> L 
[22, 44] 
>>> 

在過去的兩個技巧返回的值存儲到一個列表L,我在命令行解釋後打印。

的概念仍然是相同像其他編程語言,那麼你要重複執行某些語句,你需要循環: