[英]Tornado periodiccallback invocation is not skipped if callback takes longer then callback_time
[英]tornado PeriodicCallback: provide callback with arguments?
函數tornado.ioloop.PeriodicCallback(callback, callback_time, io_loop=None)
說我無法為我的callback
函數添加參數,但如果我真的需要用參數調用callback
怎么辦? 有工作嗎?
是的,使用lambda或functools.partial。 部分功能的文檔在這里 。
from tornado import ioloop
def my_function(a, b):
print a, b
x = 1
y = 2
periodic_callback = PeriodicCallback(
lambda: my_function(x, y),
10)
ioloop.IOLoop.current().start()
在此示例中,如果更改x或y,則更改將反映在下一次調用“my_function”中。 另一方面,如果你“導入functools”並且:
periodic_callback = PeriodicCallback(
functools.partial(my_function, x, y),
10)
然后稍后更改為x和y的值將不會出現在“my_function”中。 最后,你可以這樣做:
def my_partial():
my_function(x, y)
periodic_callback = PeriodicCallback(
my_partial,
10)
這與前面的“lambda”表達式相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.