jettask 0.2.18__tar.gz → 0.2.20__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. {jettask-0.2.18/jettask.egg-info → jettask-0.2.20}/PKG-INFO +2 -71
  2. jettask-0.2.20/jettask/__init__.py +77 -0
  3. {jettask-0.2.18 → jettask-0.2.20}/jettask/cli.py +314 -228
  4. jettask-0.2.20/jettask/config/__init__.py +15 -0
  5. jettask-0.2.20/jettask/config/config.py +245 -0
  6. jettask-0.2.20/jettask/config/env_loader.py +381 -0
  7. jettask-0.2.20/jettask/config/lua_scripts.py +158 -0
  8. {jettask-0.2.18 → jettask-0.2.20}/jettask/config/nacos_config.py +132 -5
  9. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/__init__.py +1 -1
  10. jettask-0.2.20/jettask/core/app.py +2652 -0
  11. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/app_importer.py +33 -16
  12. jettask-0.2.20/jettask/core/container.py +532 -0
  13. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/task.py +1 -4
  14. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/unified_manager_base.py +2 -2
  15. jettask-0.2.20/jettask/executor/__init__.py +38 -0
  16. jettask-0.2.20/jettask/executor/core.py +625 -0
  17. jettask-0.2.20/jettask/executor/executor.py +338 -0
  18. jettask-0.2.20/jettask/executor/orchestrator.py +290 -0
  19. jettask-0.2.20/jettask/executor/process_entry.py +638 -0
  20. jettask-0.2.20/jettask/executor/task_executor.py +317 -0
  21. jettask-0.2.20/jettask/messaging/__init__.py +68 -0
  22. jettask-0.2.20/jettask/messaging/event_pool.py +2188 -0
  23. jettask-0.2.20/jettask/messaging/reader.py +519 -0
  24. jettask-0.2.20/jettask/messaging/registry.py +266 -0
  25. jettask-0.2.20/jettask/messaging/scanner.py +369 -0
  26. jettask-0.2.20/jettask/messaging/sender.py +312 -0
  27. jettask-0.2.20/jettask/persistence/__init__.py +118 -0
  28. jettask-0.2.20/jettask/persistence/backlog_monitor.py +567 -0
  29. jettask-0.2.18/jettask/backend/data_access.py → jettask-0.2.20/jettask/persistence/base.py +58 -57
  30. jettask-0.2.20/jettask/persistence/consumer.py +315 -0
  31. {jettask-0.2.18/jettask/core → jettask-0.2.20/jettask/persistence}/db_manager.py +23 -22
  32. jettask-0.2.20/jettask/persistence/maintenance.py +81 -0
  33. jettask-0.2.20/jettask/persistence/message_consumer.py +259 -0
  34. jettask-0.2.18/jettask/backend/namespace_data_access.py → jettask-0.2.20/jettask/persistence/namespace.py +66 -98
  35. jettask-0.2.20/jettask/persistence/offline_recovery.py +196 -0
  36. jettask-0.2.20/jettask/persistence/queue_discovery.py +215 -0
  37. jettask-0.2.20/jettask/persistence/task_persistence.py +218 -0
  38. jettask-0.2.20/jettask/persistence/task_updater.py +583 -0
  39. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/__init__.py +2 -2
  40. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/loader.py +6 -5
  41. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/run_scheduler.py +1 -1
  42. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/scheduler.py +7 -7
  43. jettask-0.2.18/jettask/scheduler/unified_scheduler_manager.py → jettask-0.2.20/jettask/scheduler/scheduler_coordinator.py +18 -13
  44. jettask-0.2.20/jettask/task/__init__.py +16 -0
  45. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/task}/router.py +26 -8
  46. jettask-0.2.20/jettask/task/task_center/__init__.py +9 -0
  47. jettask-0.2.20/jettask/task/task_executor.py +318 -0
  48. jettask-0.2.20/jettask/task/task_registry.py +291 -0
  49. jettask-0.2.20/jettask/test_connection_monitor.py +73 -0
  50. jettask-0.2.20/jettask/utils/__init__.py +33 -0
  51. jettask-0.2.18/jettask/monitor/run_backlog_collector.py → jettask-0.2.20/jettask/utils/backlog_collector.py +1 -1
  52. jettask-0.2.20/jettask/utils/db_connector.py +1629 -0
  53. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/utils}/db_init.py +1 -1
  54. jettask-0.2.20/jettask/utils/rate_limit/__init__.py +30 -0
  55. jettask-0.2.20/jettask/utils/rate_limit/concurrency_limiter.py +665 -0
  56. jettask-0.2.20/jettask/utils/rate_limit/config.py +145 -0
  57. jettask-0.2.20/jettask/utils/rate_limit/limiter.py +41 -0
  58. jettask-0.2.20/jettask/utils/rate_limit/manager.py +269 -0
  59. jettask-0.2.20/jettask/utils/rate_limit/qps_limiter.py +154 -0
  60. jettask-0.2.20/jettask/utils/rate_limit/task_limiter.py +384 -0
  61. {jettask-0.2.18 → jettask-0.2.20}/jettask/utils/serializer.py +3 -0
  62. jettask-0.2.18/jettask/monitor/stream_backlog_monitor.py → jettask-0.2.20/jettask/utils/stream_backlog.py +14 -6
  63. jettask-0.2.20/jettask/utils/time_sync.py +173 -0
  64. jettask-0.2.20/jettask/webui/__init__.py +27 -0
  65. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/alerts.py +1 -1
  66. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/analytics.py +2 -2
  67. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/namespaces.py +1 -1
  68. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/overview.py +1 -1
  69. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/queues.py +3 -3
  70. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/scheduled.py +1 -1
  71. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/settings.py +1 -1
  72. jettask-0.2.18/jettask/api.py → jettask-0.2.20/jettask/webui/app.py +253 -145
  73. jettask-0.2.20/jettask/webui/namespace_manager/__init__.py +10 -0
  74. jettask-0.2.18/jettask/multi_namespace_consumer.py → jettask-0.2.20/jettask/webui/namespace_manager/multi.py +69 -22
  75. jettask-0.2.18/jettask/unified_consumer_manager.py → jettask-0.2.20/jettask/webui/namespace_manager/unified.py +1 -1
  76. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/run.py +2 -2
  77. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/__init__.py +1 -3
  78. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/overview_service.py +34 -16
  79. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/queue_service.py +1 -1
  80. {jettask-0.2.18/jettask/backend → jettask-0.2.20/jettask/webui/services}/queue_stats_v2.py +1 -1
  81. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/settings_service.py +1 -1
  82. jettask-0.2.20/jettask/worker/__init__.py +53 -0
  83. jettask-0.2.20/jettask/worker/lifecycle.py +1507 -0
  84. jettask-0.2.20/jettask/worker/manager.py +583 -0
  85. jettask-0.2.18/jettask/core/offline_worker_recovery.py → jettask-0.2.20/jettask/worker/recovery.py +268 -175
  86. {jettask-0.2.18 → jettask-0.2.20/jettask.egg-info}/PKG-INFO +2 -71
  87. jettask-0.2.20/jettask.egg-info/SOURCES.txt +148 -0
  88. {jettask-0.2.18 → jettask-0.2.20}/jettask.egg-info/requires.txt +1 -2
  89. {jettask-0.2.18 → jettask-0.2.20}/pyproject.toml +2 -3
  90. jettask-0.2.18/README.md +0 -67
  91. jettask-0.2.18/jettask/__init__.py +0 -19
  92. jettask-0.2.18/jettask/__main__.py +0 -140
  93. jettask-0.2.18/jettask/api/__init__.py +0 -103
  94. jettask-0.2.18/jettask/backend/__init__.py +0 -1
  95. jettask-0.2.18/jettask/backend/api/__init__.py +0 -3
  96. jettask-0.2.18/jettask/backend/api/v1/__init__.py +0 -17
  97. jettask-0.2.18/jettask/backend/api/v1/monitoring.py +0 -431
  98. jettask-0.2.18/jettask/backend/api/v1/namespaces.py +0 -504
  99. jettask-0.2.18/jettask/backend/api/v1/queues.py +0 -342
  100. jettask-0.2.18/jettask/backend/api/v1/tasks.py +0 -367
  101. jettask-0.2.18/jettask/backend/core/__init__.py +0 -3
  102. jettask-0.2.18/jettask/backend/core/cache.py +0 -221
  103. jettask-0.2.18/jettask/backend/core/database.py +0 -200
  104. jettask-0.2.18/jettask/backend/core/exceptions.py +0 -102
  105. jettask-0.2.18/jettask/backend/dependencies.py +0 -261
  106. jettask-0.2.18/jettask/backend/init_meta_db.py +0 -158
  107. jettask-0.2.18/jettask/backend/main.py +0 -1426
  108. jettask-0.2.18/jettask/backend/main_unified.py +0 -78
  109. jettask-0.2.18/jettask/backend/main_v2.py +0 -394
  110. jettask-0.2.18/jettask/backend/models/__init__.py +0 -3
  111. jettask-0.2.18/jettask/backend/models/requests.py +0 -236
  112. jettask-0.2.18/jettask/backend/models/responses.py +0 -230
  113. jettask-0.2.18/jettask/backend/namespace_api_old.py +0 -267
  114. jettask-0.2.18/jettask/backend/services/__init__.py +0 -3
  115. jettask-0.2.18/jettask/backend/start.py +0 -42
  116. jettask-0.2.18/jettask/backend/unified_api_router.py +0 -1541
  117. jettask-0.2.18/jettask/cleanup_deprecated_tables.sql +0 -16
  118. jettask-0.2.18/jettask/config/__init__.py +0 -7
  119. jettask-0.2.18/jettask/core/app.py +0 -1745
  120. jettask-0.2.18/jettask/core/consumer_manager.py +0 -1695
  121. jettask-0.2.18/jettask/core/delay_scanner.py +0 -256
  122. jettask-0.2.18/jettask/core/event_pool.py +0 -1700
  123. jettask-0.2.18/jettask/core/heartbeat_process.py +0 -222
  124. jettask-0.2.18/jettask/core/task_batch.py +0 -153
  125. jettask-0.2.18/jettask/core/worker_scanner.py +0 -271
  126. jettask-0.2.18/jettask/executors/__init__.py +0 -5
  127. jettask-0.2.18/jettask/executors/asyncio.py +0 -876
  128. jettask-0.2.18/jettask/executors/base.py +0 -30
  129. jettask-0.2.18/jettask/executors/common.py +0 -148
  130. jettask-0.2.18/jettask/executors/multi_asyncio.py +0 -309
  131. jettask-0.2.18/jettask/gradio_app.py +0 -570
  132. jettask-0.2.18/jettask/integrated_gradio_app.py +0 -1088
  133. jettask-0.2.18/jettask/main.py +0 -0
  134. jettask-0.2.18/jettask/monitoring/__init__.py +0 -3
  135. jettask-0.2.18/jettask/pg_consumer.py +0 -1896
  136. jettask-0.2.18/jettask/run_monitor.py +0 -22
  137. jettask-0.2.18/jettask/run_webui.py +0 -148
  138. jettask-0.2.18/jettask/scheduler/multi_namespace_scheduler.py +0 -294
  139. jettask-0.2.18/jettask/scheduler/unified_manager.py +0 -450
  140. jettask-0.2.18/jettask/task_center_client.py +0 -150
  141. jettask-0.2.18/jettask/utils/__init__.py +0 -3
  142. jettask-0.2.18/jettask/utils/serializer_optimized.py +0 -33
  143. jettask-0.2.18/jettask/webui_exceptions.py +0 -67
  144. jettask-0.2.18/jettask.egg-info/SOURCES.txt +0 -154
  145. {jettask-0.2.18 → jettask-0.2.20}/LICENSE +0 -0
  146. {jettask-0.2.18 → jettask-0.2.20}/MANIFEST.in +0 -0
  147. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/config}/constants.py +0 -0
  148. {jettask-0.2.18 → jettask-0.2.20}/jettask/config/performance.py +0 -0
  149. /jettask-0.2.18/jettask/backend/config.py → /jettask-0.2.20/jettask/config/task_center.py +0 -0
  150. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/context.py +0 -0
  151. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/enums.py +0 -0
  152. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/message.py +0 -0
  153. {jettask-0.2.18 → jettask-0.2.20}/jettask/core/retry.py +0 -0
  154. {jettask-0.2.18 → jettask-0.2.20}/jettask/exceptions.py +0 -0
  155. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/messaging}/pg_consumer/pg_consumer_v2.py +0 -0
  156. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/messaging}/pg_consumer/sql/add_execution_time_field.sql +0 -0
  157. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/messaging}/pg_consumer/sql/create_new_tables.sql +0 -0
  158. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/messaging}/pg_consumer/sql/create_tables_v3.sql +0 -0
  159. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/messaging}/pg_consumer/sql/migrate_to_new_structure.sql +0 -0
  160. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/messaging}/pg_consumer/sql/modify_time_fields.sql +0 -0
  161. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/messaging}/pg_consumer/sql_utils.py +0 -0
  162. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/persistence}/models.py +0 -0
  163. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/add_execution_count.sql +0 -0
  164. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/add_priority_field.sql +0 -0
  165. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/add_scheduler_id.sql +0 -0
  166. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/add_scheduler_id_index.sql +0 -0
  167. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/make_scheduler_id_required.sql +0 -0
  168. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/migrate_interval_seconds.sql +0 -0
  169. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/models.py +0 -0
  170. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/performance_optimization.sql +0 -0
  171. {jettask-0.2.18 → jettask-0.2.20}/jettask/scheduler/schema.sql +0 -0
  172. /jettask-0.2.18/jettask/scheduler/manager.py → /jettask-0.2.20/jettask/scheduler/task_crud.py +0 -0
  173. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/__init__.py +0 -0
  174. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/alert.py +0 -0
  175. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/backlog.py +0 -0
  176. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/common.py +0 -0
  177. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/monitoring.py +0 -0
  178. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/namespace.py +0 -0
  179. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/queue.py +0 -0
  180. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/scheduled_task.py +0 -0
  181. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/schemas}/schema.sql +0 -0
  182. {jettask-0.2.18 → jettask-0.2.20}/jettask/schemas/task.py +0 -0
  183. /jettask-0.2.18/jettask/task_center.py → /jettask-0.2.20/jettask/task/task_center/client.py +0 -0
  184. {jettask-0.2.18 → jettask-0.2.20}/jettask/utils/error_handler.py +0 -0
  185. {jettask-0.2.18 → jettask-0.2.20}/jettask/utils/exception_hook.py +0 -0
  186. {jettask-0.2.18/jettask/monitoring → jettask-0.2.20/jettask/utils}/file_watcher.py +0 -0
  187. {jettask-0.2.18 → jettask-0.2.20}/jettask/utils/helpers.py +0 -0
  188. {jettask-0.2.18 → jettask-0.2.20}/jettask/utils/logger.py +0 -0
  189. /jettask-0.2.18/jettask/services/redis_monitor_service.py → /jettask-0.2.20/jettask/utils/redis_monitor.py +0 -0
  190. {jettask-0.2.18 → jettask-0.2.20}/jettask/utils/task_logger.py +0 -0
  191. {jettask-0.2.18 → jettask-0.2.20}/jettask/utils/traceback_filter.py +0 -0
  192. {jettask-0.2.18/jettask/api/v1 → jettask-0.2.20/jettask/webui/api}/__init__.py +0 -0
  193. /jettask-0.2.18/jettask/webui_config.py → /jettask-0.2.20/jettask/webui/config.py +0 -0
  194. {jettask-0.2.18/jettask/webui_models → jettask-0.2.20/jettask/webui/models}/__init__.py +0 -0
  195. {jettask-0.2.18/jettask/webui_models → jettask-0.2.20/jettask/webui/models}/namespace.py +0 -0
  196. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/alert_service.py +0 -0
  197. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/analytics_service.py +0 -0
  198. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/scheduled_task_service.py +0 -0
  199. {jettask-0.2.18/jettask → jettask-0.2.20/jettask/webui}/services/task_service.py +0 -0
  200. {jettask-0.2.18/jettask/webui_sql → jettask-0.2.20/jettask/webui/sql}/batch_upsert_functions.sql +0 -0
  201. {jettask-0.2.18/jettask/webui_sql → jettask-0.2.20/jettask/webui/sql}/verify_database.sql +0 -0
  202. {jettask-0.2.18 → jettask-0.2.20}/jettask.egg-info/dependency_links.txt +0 -0
  203. {jettask-0.2.18 → jettask-0.2.20}/jettask.egg-info/entry_points.txt +0 -0
  204. {jettask-0.2.18 → jettask-0.2.20}/jettask.egg-info/top_level.txt +0 -0
  205. {jettask-0.2.18 → jettask-0.2.20}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jettask
3
- Version: 0.2.18
3
+ Version: 0.2.20
4
4
  Summary: A high-performance distributed task queue system with web monitoring
5
5
  Author-email: JetTask Team <support@jettask.io>
6
6
  License-Expression: MIT
@@ -20,8 +20,7 @@ Classifier: Operating System :: OS Independent
20
20
  Requires-Python: >=3.8
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: redis>=4.5.0
24
- Requires-Dist: aioredis>=2.0.0
23
+ Requires-Dist: redis
25
24
  Requires-Dist: msgpack>=1.0.0
26
25
  Requires-Dist: watchdog>=3.0.0
27
26
  Requires-Dist: uvloop>=0.17.0
@@ -49,71 +48,3 @@ Requires-Dist: flake8>=6.0; extra == "dev"
49
48
  Requires-Dist: mypy>=1.4.0; extra == "dev"
50
49
  Requires-Dist: coverage>=7.0; extra == "dev"
51
50
  Dynamic: license-file
52
-
53
- # JetTask
54
-
55
- 一个高性能的分布式任务队列系统,支持Web监控界面。
56
-
57
- ## 特性
58
-
59
- - 🚀 高性能异步任务执行
60
- - 📊 实时Web监控界面
61
- - ⏰ 支持定时任务和延迟任务
62
- - 🔄 任务重试和错误处理
63
- - 🎯 多队列和优先级支持
64
- - 🌍 多命名空间隔离
65
- - 📈 任务统计和性能监控
66
- - 🔧 简单易用的API
67
-
68
- ## 安装
69
-
70
- ```bash
71
- pip install jettask
72
- ```
73
-
74
- ## 快速开始
75
-
76
- ### 1. 创建任务
77
-
78
- ```python
79
- from jettask import JetTask
80
-
81
- app = JetTask()
82
-
83
- @app.task(queue="default")
84
- async def hello_task(name):
85
- return f"Hello, {name}!"
86
- ```
87
-
88
- ### 2. 启动Worker
89
-
90
- ```bash
91
- jettask worker -a app:app --queues default
92
- ```
93
-
94
- ### 3. 发送任务
95
-
96
- ```python
97
- result = await hello_task.send("World")
98
- print(result) # Hello, World!
99
- ```
100
-
101
- ### 4. 启动Web监控界面
102
-
103
- ```bash
104
- # 启动API服务
105
- jettask api
106
-
107
- # 启动前端界面
108
- jettask frontend
109
- ```
110
-
111
- 然后访问 http://localhost:3000 查看监控界面。
112
-
113
- ## 文档
114
-
115
- 详细文档请参见 [docs/](docs/) 目录。
116
-
117
- ## 许可证
118
-
119
- MIT License
@@ -0,0 +1,77 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ JetTask - High Performance Distributed Task Queue System
4
+ """
5
+
6
+ import logging
7
+ import inspect
8
+
9
+ # Core class imports
10
+ from jettask.core.app import Jettask
11
+ from jettask.core.message import TaskMessage
12
+ from jettask.task.task_center.client import TaskCenter
13
+ from jettask.task.router import TaskRouter
14
+
15
+ # Rate limit config imports
16
+ from jettask.utils.rate_limit.config import QPSLimit, ConcurrencyLimit
17
+
18
+ # Import logger components from utils
19
+ from jettask.utils.task_logger import (
20
+ TaskContextFilter,
21
+ ExtendedTextFormatter,
22
+ LogContext
23
+ )
24
+
25
+ # Version info
26
+ __version__ = "0.1.0"
27
+
28
+
29
+ def get_task_logger(name: str = None) -> logging.Logger:
30
+ """
31
+ 获取带任务上下文的logger
32
+
33
+ Args:
34
+ name: logger名称,默认使用调用者的模块名
35
+
36
+ Returns:
37
+ 配置好的logger实例
38
+
39
+ Example:
40
+ from jettask import get_task_logger
41
+ logger = get_task_logger()
42
+ logger.info("处理任务")
43
+ """
44
+ if name is None:
45
+ # 自动获取调用者的模块名
46
+ frame = inspect.currentframe()
47
+ if frame and frame.f_back:
48
+ name = frame.f_back.f_globals.get('__name__', 'jettask')
49
+ else:
50
+ name = 'jettask'
51
+
52
+ logger = logging.getLogger(name)
53
+
54
+ # 如果logger还没有处理器,添加默认处理器
55
+ if not logger.handlers:
56
+ handler = logging.StreamHandler()
57
+ handler.setFormatter(ExtendedTextFormatter(
58
+ '%(asctime)s - %(levelname)s - [%(task_id)s] - %(name)s - %(message)s'
59
+ ))
60
+ handler.addFilter(TaskContextFilter())
61
+ logger.addHandler(handler)
62
+ logger.propagate = False
63
+
64
+ return logger
65
+
66
+
67
+ # Public API exports
68
+ __all__ = [
69
+ "Jettask",
70
+ "TaskMessage",
71
+ "TaskCenter",
72
+ "TaskRouter",
73
+ "QPSLimit",
74
+ "ConcurrencyLimit",
75
+ "get_task_logger",
76
+ "LogContext",
77
+ ]