信号:Signals
当某些动作在应用中的其他位置触发时,信号允许解耦的应用接收到通知。
Celery 附带了很多信号,您的应用可以嵌入这些信号来增加某些动作的额外行为。
基本
一些事件触发信号,你可以连接到这些信号以在它们被触发时执行一些操作。
连接到 after_task_publish
信号的示例:
一些信号也有一个你可以进行过滤的发送者。比如 after_task_publish
信号使用任务的名称作为发送者,所以通过提供发送者的参数进行连接,你可以在每次名称为 proj.tasks.add
的任务被发布时连接要被调用的处理函数:
信号使用与 django.core.dispatch
相同的实现,所以在默认情况下,其他的关键字参数(如 singal) 将被传递到所有的信号处理函数里。
信号处理的最佳实践是接受任意的关键字参数(如, **kwargs)。这种方式使得新的 Celery
版本可以在不影响用户代码的情况下添加可选参数。
信号
任务信号
before_task_publish
在 3.1 版本引入
在任务发布之前派发。注意,这是在发送任务的过程中执行的。
发送者时被发布的任务的名称。
提供的参数:
最后更新于