signals.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. # -*- coding: utf-8 -*-
  2. """Celery Signals.
  3. This module defines the signals (Observer pattern) sent by
  4. both workers and clients.
  5. Functions can be connected to these signals, and connected
  6. functions are called whenever a signal is called.
  7. .. seealso::
  8. :ref:`signals` for more information.
  9. """
  10. from __future__ import absolute_import, unicode_literals
  11. from .utils.dispatch import Signal
  12. __all__ = (
  13. 'before_task_publish', 'after_task_publish',
  14. 'task_prerun', 'task_postrun', 'task_success',
  15. 'task_retry', 'task_failure', 'task_revoked', 'celeryd_init',
  16. 'celeryd_after_setup', 'worker_init', 'worker_process_init',
  17. 'worker_ready', 'worker_shutdown', 'worker_shutting_down',
  18. 'setup_logging', 'after_setup_logger', 'after_setup_task_logger',
  19. 'beat_init', 'beat_embedded_init', 'heartbeat_sent',
  20. 'eventlet_pool_started', 'eventlet_pool_preshutdown',
  21. 'eventlet_pool_postshutdown', 'eventlet_pool_apply',
  22. )
  23. # - Task
  24. before_task_publish = Signal(
  25. name='before_task_publish',
  26. providing_args={
  27. 'body', 'exchange', 'routing_key', 'headers',
  28. 'properties', 'declare', 'retry_policy',
  29. },
  30. )
  31. after_task_publish = Signal(
  32. name='after_task_publish',
  33. providing_args={'body', 'exchange', 'routing_key'},
  34. )
  35. task_prerun = Signal(
  36. name='task_prerun',
  37. providing_args={'task_id', 'task', 'args', 'kwargs'},
  38. )
  39. task_postrun = Signal(
  40. name='task_postrun',
  41. providing_args={'task_id', 'task', 'args', 'kwargs', 'retval'},
  42. )
  43. task_success = Signal(
  44. name='task_success',
  45. providing_args={'result'},
  46. )
  47. task_retry = Signal(
  48. name='task_retry',
  49. providing_args={'request', 'reason', 'einfo'},
  50. )
  51. task_failure = Signal(
  52. name='task_failure',
  53. providing_args={
  54. 'task_id', 'exception', 'args', 'kwargs', 'traceback', 'einfo',
  55. },
  56. )
  57. task_revoked = Signal(
  58. name='task_revoked',
  59. providing_args={
  60. 'request', 'terminated', 'signum', 'expired',
  61. },
  62. )
  63. task_rejected = Signal(
  64. name='task_rejected',
  65. providing_args={'message', 'exc'},
  66. )
  67. task_unknown = Signal(
  68. name='task_unknown',
  69. providing_args={'message', 'exc', 'name', 'id'},
  70. )
  71. #: Deprecated, use after_task_publish instead.
  72. task_sent = Signal(
  73. name='task_sent',
  74. providing_args={
  75. 'task_id', 'task', 'args', 'kwargs', 'eta', 'taskset',
  76. },
  77. )
  78. # - Prorgam: `celery worker`
  79. celeryd_init = Signal(
  80. name='celeryd_init',
  81. providing_args={'instance', 'conf', 'options'},
  82. )
  83. celeryd_after_setup = Signal(
  84. name='celeryd_after_setup',
  85. providing_args={'instance', 'conf'},
  86. )
  87. # - Worker
  88. import_modules = Signal(name='import_modules')
  89. worker_init = Signal(name='worker_init')
  90. worker_process_init = Signal(name='worker_process_init')
  91. worker_process_shutdown = Signal(name='worker_process_shutdown')
  92. worker_ready = Signal(name='worker_ready')
  93. worker_shutdown = Signal(name='worker_shutdown')
  94. worker_shutting_down = Signal(name='worker_shutting_down')
  95. heartbeat_sent = Signal(name='heartbeat_sent')
  96. # - Logging
  97. setup_logging = Signal(
  98. name='setup_logging',
  99. providing_args={
  100. 'loglevel', 'logfile', 'format', 'colorize',
  101. },
  102. )
  103. after_setup_logger = Signal(
  104. name='after_setup_logger',
  105. providing_args={
  106. 'logger', 'loglevel', 'logfile', 'format', 'colorize',
  107. },
  108. )
  109. after_setup_task_logger = Signal(
  110. name='after_setup_task_logger',
  111. providing_args={
  112. 'logger', 'loglevel', 'logfile', 'format', 'colorize',
  113. },
  114. )
  115. # - Beat
  116. beat_init = Signal(name='beat_init')
  117. beat_embedded_init = Signal(name='beat_embedded_init')
  118. # - Eventlet
  119. eventlet_pool_started = Signal(name='eventlet_pool_started')
  120. eventlet_pool_preshutdown = Signal(name='eventlet_pool_preshutdown')
  121. eventlet_pool_postshutdown = Signal(name='eventlet_pool_postshutdown')
  122. eventlet_pool_apply = Signal(
  123. name='eventlet_pool_apply',
  124. providing_args={'target', 'args', 'kwargs'},
  125. )
  126. # - Programs
  127. user_preload_options = Signal(
  128. name='user_preload_options',
  129. providing_args={'app', 'options'},
  130. )