jettask 0.2.16__tar.gz → 0.2.17__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 (156) hide show
  1. {jettask-0.2.16/jettask.egg-info → jettask-0.2.17}/PKG-INFO +1 -1
  2. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/unified_manager_base.py +25 -13
  3. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/manager.py +6 -0
  4. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/unified_scheduler_manager.py +19 -11
  5. {jettask-0.2.16 → jettask-0.2.17/jettask.egg-info}/PKG-INFO +1 -1
  6. {jettask-0.2.16 → jettask-0.2.17}/pyproject.toml +1 -1
  7. {jettask-0.2.16 → jettask-0.2.17}/LICENSE +0 -0
  8. {jettask-0.2.16 → jettask-0.2.17}/MANIFEST.in +0 -0
  9. {jettask-0.2.16 → jettask-0.2.17}/README.md +0 -0
  10. {jettask-0.2.16 → jettask-0.2.17}/jettask/__init__.py +0 -0
  11. {jettask-0.2.16 → jettask-0.2.17}/jettask/__main__.py +0 -0
  12. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/__init__.py +0 -0
  13. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/__init__.py +0 -0
  14. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/alerts.py +0 -0
  15. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/analytics.py +0 -0
  16. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/namespaces.py +0 -0
  17. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/overview.py +0 -0
  18. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/queues.py +0 -0
  19. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/scheduled.py +0 -0
  20. {jettask-0.2.16 → jettask-0.2.17}/jettask/api/v1/settings.py +0 -0
  21. {jettask-0.2.16 → jettask-0.2.17}/jettask/api.py +0 -0
  22. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/__init__.py +0 -0
  23. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/api/__init__.py +0 -0
  24. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/api/v1/__init__.py +0 -0
  25. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/api/v1/monitoring.py +0 -0
  26. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/api/v1/namespaces.py +0 -0
  27. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/api/v1/queues.py +0 -0
  28. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/api/v1/tasks.py +0 -0
  29. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/config.py +0 -0
  30. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/core/__init__.py +0 -0
  31. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/core/cache.py +0 -0
  32. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/core/database.py +0 -0
  33. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/core/exceptions.py +0 -0
  34. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/data_access.py +0 -0
  35. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/dependencies.py +0 -0
  36. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/init_meta_db.py +0 -0
  37. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/main.py +0 -0
  38. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/main_unified.py +0 -0
  39. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/main_v2.py +0 -0
  40. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/models/__init__.py +0 -0
  41. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/models/requests.py +0 -0
  42. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/models/responses.py +0 -0
  43. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/namespace_api_old.py +0 -0
  44. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/namespace_data_access.py +0 -0
  45. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/queue_stats_v2.py +0 -0
  46. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/services/__init__.py +0 -0
  47. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/start.py +0 -0
  48. {jettask-0.2.16 → jettask-0.2.17}/jettask/backend/unified_api_router.py +0 -0
  49. {jettask-0.2.16 → jettask-0.2.17}/jettask/cleanup_deprecated_tables.sql +0 -0
  50. {jettask-0.2.16 → jettask-0.2.17}/jettask/cli.py +0 -0
  51. {jettask-0.2.16 → jettask-0.2.17}/jettask/config/__init__.py +0 -0
  52. {jettask-0.2.16 → jettask-0.2.17}/jettask/config/nacos_config.py +0 -0
  53. {jettask-0.2.16 → jettask-0.2.17}/jettask/config/performance.py +0 -0
  54. {jettask-0.2.16 → jettask-0.2.17}/jettask/constants.py +0 -0
  55. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/__init__.py +0 -0
  56. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/app.py +0 -0
  57. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/app_importer.py +0 -0
  58. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/consumer_manager.py +0 -0
  59. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/context.py +0 -0
  60. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/db_manager.py +0 -0
  61. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/delay_scanner.py +0 -0
  62. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/enums.py +0 -0
  63. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/event_pool.py +0 -0
  64. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/heartbeat_process.py +0 -0
  65. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/message.py +0 -0
  66. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/offline_worker_recovery.py +0 -0
  67. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/retry.py +0 -0
  68. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/task.py +0 -0
  69. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/task_batch.py +0 -0
  70. {jettask-0.2.16 → jettask-0.2.17}/jettask/core/worker_scanner.py +0 -0
  71. {jettask-0.2.16 → jettask-0.2.17}/jettask/db_init.py +0 -0
  72. {jettask-0.2.16 → jettask-0.2.17}/jettask/exceptions.py +0 -0
  73. {jettask-0.2.16 → jettask-0.2.17}/jettask/executors/__init__.py +0 -0
  74. {jettask-0.2.16 → jettask-0.2.17}/jettask/executors/asyncio.py +0 -0
  75. {jettask-0.2.16 → jettask-0.2.17}/jettask/executors/base.py +0 -0
  76. {jettask-0.2.16 → jettask-0.2.17}/jettask/executors/common.py +0 -0
  77. {jettask-0.2.16 → jettask-0.2.17}/jettask/executors/multi_asyncio.py +0 -0
  78. {jettask-0.2.16 → jettask-0.2.17}/jettask/gradio_app.py +0 -0
  79. {jettask-0.2.16 → jettask-0.2.17}/jettask/integrated_gradio_app.py +0 -0
  80. {jettask-0.2.16 → jettask-0.2.17}/jettask/main.py +0 -0
  81. {jettask-0.2.16 → jettask-0.2.17}/jettask/models.py +0 -0
  82. {jettask-0.2.16 → jettask-0.2.17}/jettask/monitor/run_backlog_collector.py +0 -0
  83. {jettask-0.2.16 → jettask-0.2.17}/jettask/monitor/stream_backlog_monitor.py +0 -0
  84. {jettask-0.2.16 → jettask-0.2.17}/jettask/monitoring/__init__.py +0 -0
  85. {jettask-0.2.16 → jettask-0.2.17}/jettask/monitoring/file_watcher.py +0 -0
  86. {jettask-0.2.16 → jettask-0.2.17}/jettask/multi_namespace_consumer.py +0 -0
  87. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer/pg_consumer_v2.py +0 -0
  88. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer/sql/add_execution_time_field.sql +0 -0
  89. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer/sql/create_new_tables.sql +0 -0
  90. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer/sql/create_tables_v3.sql +0 -0
  91. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer/sql/migrate_to_new_structure.sql +0 -0
  92. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer/sql/modify_time_fields.sql +0 -0
  93. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer/sql_utils.py +0 -0
  94. {jettask-0.2.16 → jettask-0.2.17}/jettask/pg_consumer.py +0 -0
  95. {jettask-0.2.16 → jettask-0.2.17}/jettask/router.py +0 -0
  96. {jettask-0.2.16 → jettask-0.2.17}/jettask/run.py +0 -0
  97. {jettask-0.2.16 → jettask-0.2.17}/jettask/run_monitor.py +0 -0
  98. {jettask-0.2.16 → jettask-0.2.17}/jettask/run_webui.py +0 -0
  99. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/__init__.py +0 -0
  100. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/add_execution_count.sql +0 -0
  101. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/add_priority_field.sql +0 -0
  102. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/add_scheduler_id.sql +0 -0
  103. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/add_scheduler_id_index.sql +0 -0
  104. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/loader.py +0 -0
  105. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/make_scheduler_id_required.sql +0 -0
  106. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/migrate_interval_seconds.sql +0 -0
  107. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/models.py +0 -0
  108. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/multi_namespace_scheduler.py +0 -0
  109. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/performance_optimization.sql +0 -0
  110. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/run_scheduler.py +0 -0
  111. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/scheduler.py +0 -0
  112. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/schema.sql +0 -0
  113. {jettask-0.2.16 → jettask-0.2.17}/jettask/scheduler/unified_manager.py +0 -0
  114. {jettask-0.2.16 → jettask-0.2.17}/jettask/schema.sql +0 -0
  115. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/__init__.py +0 -0
  116. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/alert.py +0 -0
  117. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/backlog.py +0 -0
  118. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/common.py +0 -0
  119. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/monitoring.py +0 -0
  120. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/namespace.py +0 -0
  121. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/queue.py +0 -0
  122. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/scheduled_task.py +0 -0
  123. {jettask-0.2.16 → jettask-0.2.17}/jettask/schemas/task.py +0 -0
  124. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/__init__.py +0 -0
  125. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/alert_service.py +0 -0
  126. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/analytics_service.py +0 -0
  127. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/overview_service.py +0 -0
  128. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/queue_service.py +0 -0
  129. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/redis_monitor_service.py +0 -0
  130. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/scheduled_task_service.py +0 -0
  131. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/settings_service.py +0 -0
  132. {jettask-0.2.16 → jettask-0.2.17}/jettask/services/task_service.py +0 -0
  133. {jettask-0.2.16 → jettask-0.2.17}/jettask/task_center.py +0 -0
  134. {jettask-0.2.16 → jettask-0.2.17}/jettask/task_center_client.py +0 -0
  135. {jettask-0.2.16 → jettask-0.2.17}/jettask/unified_consumer_manager.py +0 -0
  136. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/__init__.py +0 -0
  137. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/error_handler.py +0 -0
  138. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/exception_hook.py +0 -0
  139. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/helpers.py +0 -0
  140. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/logger.py +0 -0
  141. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/serializer.py +0 -0
  142. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/serializer_optimized.py +0 -0
  143. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/task_logger.py +0 -0
  144. {jettask-0.2.16 → jettask-0.2.17}/jettask/utils/traceback_filter.py +0 -0
  145. {jettask-0.2.16 → jettask-0.2.17}/jettask/webui_config.py +0 -0
  146. {jettask-0.2.16 → jettask-0.2.17}/jettask/webui_exceptions.py +0 -0
  147. {jettask-0.2.16 → jettask-0.2.17}/jettask/webui_models/__init__.py +0 -0
  148. {jettask-0.2.16 → jettask-0.2.17}/jettask/webui_models/namespace.py +0 -0
  149. {jettask-0.2.16 → jettask-0.2.17}/jettask/webui_sql/batch_upsert_functions.sql +0 -0
  150. {jettask-0.2.16 → jettask-0.2.17}/jettask/webui_sql/verify_database.sql +0 -0
  151. {jettask-0.2.16 → jettask-0.2.17}/jettask.egg-info/SOURCES.txt +0 -0
  152. {jettask-0.2.16 → jettask-0.2.17}/jettask.egg-info/dependency_links.txt +0 -0
  153. {jettask-0.2.16 → jettask-0.2.17}/jettask.egg-info/entry_points.txt +0 -0
  154. {jettask-0.2.16 → jettask-0.2.17}/jettask.egg-info/requires.txt +0 -0
  155. {jettask-0.2.16 → jettask-0.2.17}/jettask.egg-info/top_level.txt +0 -0
  156. {jettask-0.2.16 → jettask-0.2.17}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jettask
3
- Version: 0.2.16
3
+ Version: 0.2.17
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
@@ -97,6 +97,12 @@ class UnifiedManagerBase(ABC):
97
97
  elif '/api/namespaces/' in self.task_center_url:
98
98
  # 兼容旧格式
99
99
  return self.task_center_url.split('/api/namespaces/')[0]
100
+
101
+ # 多命名空间模式,如果URL以 /api/v1/ 结尾,去掉 /api/v1/ 部分
102
+ if self.task_center_url.endswith('/api/v1/') or self.task_center_url.endswith('/api/v1'):
103
+ # 从 http://localhost:8001/api/v1/ 提取 http://localhost:8001
104
+ return self.task_center_url.rstrip('/').rsplit('/api/v1', 1)[0]
105
+
100
106
  return self.task_center_url
101
107
 
102
108
  def get_target_namespaces(self) -> Optional[Set[str]]:
@@ -139,13 +145,16 @@ class UnifiedManagerBase(ABC):
139
145
  if response.status == 200:
140
146
  data = await response.json()
141
147
  # 构建redis和pg配置
142
- redis_config = {}
143
- if data.get('redis_url'):
144
- redis_config = {'url': data['redis_url']}
148
+ # 跳过没有有效配置的命名空间
149
+ redis_url = data.get('redis_url', '')
150
+ pg_url = data.get('pg_url', '')
145
151
 
146
- pg_config = {}
147
- if data.get('pg_url'):
148
- pg_config = {'url': data['pg_url']}
152
+ if not redis_url or not pg_url:
153
+ logger.warning(f"跳过命名空间 {data['name']}:缺少 Redis 或 PostgreSQL 配置")
154
+ continue
155
+
156
+ redis_config = {'url': redis_url}
157
+ pg_config = {'url': pg_url}
149
158
 
150
159
  ns_info = {
151
160
  'id': data.get('id', data['name']), # 如果没有id,使用name作为id
@@ -163,7 +172,7 @@ class UnifiedManagerBase(ABC):
163
172
  else:
164
173
  # 获取所有命名空间
165
174
  async with aiohttp.ClientSession() as session:
166
- url = f"{base_url}/api/v1/namespaces"
175
+ url = f"{base_url}/api/v1/namespaces/" # 添加末尾斜杠
167
176
  logger.debug(f"请求所有命名空间配置: {url}")
168
177
 
169
178
  async with session.get(url) as response:
@@ -171,13 +180,16 @@ class UnifiedManagerBase(ABC):
171
180
  data_list = await response.json()
172
181
  for data in data_list:
173
182
  # 构建redis和pg配置
174
- redis_config = {}
175
- if data.get('redis_url'):
176
- redis_config = {'url': data['redis_url']}
183
+ # 跳过没有有效配置的命名空间
184
+ redis_url = data.get('redis_url', '')
185
+ pg_url = data.get('pg_url', '')
186
+
187
+ if not redis_url or not pg_url:
188
+ logger.warning(f"跳过命名空间 {data['name']}:缺少 Redis 或 PostgreSQL 配置")
189
+ continue
177
190
 
178
- pg_config = {}
179
- if data.get('pg_url'):
180
- pg_config = {'url': data['pg_url']}
191
+ redis_config = {'url': redis_url}
192
+ pg_config = {'url': pg_url}
181
193
 
182
194
  ns_info = {
183
195
  'id': data.get('id', data['name']), # 如果没有id,使用name作为id
@@ -26,6 +26,12 @@ class ScheduledTaskManager:
26
26
  else:
27
27
  # 从app对象获取pg_url
28
28
  self.db_url = app_or_db_url.pg_url
29
+
30
+ # 将SQLAlchemy格式的URL转换为原生PostgreSQL URL
31
+ # postgresql+asyncpg:// -> postgresql://
32
+ if self.db_url and '+' in self.db_url:
33
+ self.db_url = self.db_url.split('+')[0] + self.db_url[self.db_url.index('://'):]
34
+
29
35
  self.pool: Optional[asyncpg.Pool] = None
30
36
 
31
37
  async def connect(self):
@@ -67,18 +67,19 @@ class UnifiedSchedulerManager(UnifiedManagerBase):
67
67
  # 创建 Jettask 应用
68
68
  app = Jettask(task_center=tc)
69
69
 
70
- # 创建调度器管理器
71
- manager = ScheduledTaskManager(app, namespace=namespace_name)
70
+ # 创建调度器管理器(不需要传递namespace参数)
71
+ manager = ScheduledTaskManager(app)
72
72
 
73
73
  # 创建并启动调度器
74
74
  self.scheduler_instance = TaskScheduler(
75
- manager=manager,
75
+ app=app,
76
+ db_manager=manager,
76
77
  scan_interval=self.scan_interval,
77
78
  batch_size=self.batch_size
78
79
  )
79
80
 
80
81
  # 运行调度器
81
- await self.scheduler_instance.start()
82
+ await self.scheduler_instance.run()
82
83
 
83
84
  except Exception as e:
84
85
  logger.error(f"单命名空间调度器运行失败: {e}", exc_info=self.debug)
@@ -170,13 +171,20 @@ class UnifiedSchedulerManager(UnifiedManagerBase):
170
171
  async def run_scheduler():
171
172
  try:
172
173
  # 构建命名空间特定的URL
173
- if '/api/namespaces/' not in task_center_url:
174
- # 如果是基础URL,添加命名空间路径
175
- url = f"{task_center_url}/api/namespaces/{namespace_name}"
176
- else:
177
- # 替换现有的命名空间
174
+ if task_center_url.endswith('/api/v1/') or task_center_url.endswith('/api/v1'):
175
+ # 多命名空间模式,URL是 http://localhost:8001/api/v1/
176
+ url = f"{task_center_url.rstrip('/')}/namespaces/{namespace_name}"
177
+ elif '/api/v1/namespaces/' in task_center_url:
178
+ # 单命名空间模式的URL,需要替换命名空间
179
+ base_url = task_center_url.split('/api/v1/namespaces/')[0]
180
+ url = f"{base_url}/api/v1/namespaces/{namespace_name}"
181
+ elif '/api/namespaces/' in task_center_url:
182
+ # 兼容旧格式
178
183
  base_url = task_center_url.split('/api/namespaces/')[0]
179
184
  url = f"{base_url}/api/namespaces/{namespace_name}"
185
+ else:
186
+ # 如果是基础URL,添加命名空间路径
187
+ url = f"{task_center_url.rstrip('/')}/api/v1/namespaces/{namespace_name}"
180
188
 
181
189
  # 创建任务中心连接
182
190
  tc = TaskCenter(url)
@@ -189,7 +197,7 @@ class UnifiedSchedulerManager(UnifiedManagerBase):
189
197
  # 创建调度器管理器 - ScheduledTaskManager 只接受一个参数
190
198
  manager = ScheduledTaskManager(app)
191
199
 
192
- # 创建并启动调度器 - 使用正确的参数名
200
+ # 创建并启动调度器
193
201
  scheduler = TaskScheduler(
194
202
  app=app,
195
203
  db_manager=manager,
@@ -262,7 +270,7 @@ class UnifiedSchedulerManager(UnifiedManagerBase):
262
270
  if self.scheduler_instance:
263
271
  # 单命名空间模式
264
272
  logger.info("停止调度器")
265
- await self.scheduler_instance.stop()
273
+ self.scheduler_instance.stop() # stop()不是异步方法
266
274
 
267
275
  # 多命名空间模式
268
276
  logger.info("停止所有调度器进程")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jettask
3
- Version: 0.2.16
3
+ Version: 0.2.17
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jettask"
7
- version = "0.2.16"
7
+ version = "0.2.17"
8
8
  authors = [
9
9
  {name = "JetTask Team", email = "support@jettask.io"},
10
10
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes