jettask 0.2.19__py3-none-any.whl → 0.2.23__py3-none-any.whl
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.
- jettask/__init__.py +12 -3
- jettask/cli.py +314 -228
- jettask/config/__init__.py +9 -1
- jettask/config/config.py +245 -0
- jettask/config/env_loader.py +381 -0
- jettask/config/lua_scripts.py +158 -0
- jettask/config/nacos_config.py +132 -5
- jettask/core/__init__.py +1 -1
- jettask/core/app.py +1573 -666
- jettask/core/app_importer.py +33 -16
- jettask/core/container.py +532 -0
- jettask/core/task.py +1 -4
- jettask/core/unified_manager_base.py +2 -2
- jettask/executor/__init__.py +38 -0
- jettask/executor/core.py +625 -0
- jettask/executor/executor.py +338 -0
- jettask/executor/orchestrator.py +290 -0
- jettask/executor/process_entry.py +638 -0
- jettask/executor/task_executor.py +317 -0
- jettask/messaging/__init__.py +68 -0
- jettask/messaging/event_pool.py +2188 -0
- jettask/messaging/reader.py +519 -0
- jettask/messaging/registry.py +266 -0
- jettask/messaging/scanner.py +369 -0
- jettask/messaging/sender.py +312 -0
- jettask/persistence/__init__.py +118 -0
- jettask/persistence/backlog_monitor.py +567 -0
- jettask/{backend/data_access.py → persistence/base.py} +58 -57
- jettask/persistence/consumer.py +315 -0
- jettask/{core → persistence}/db_manager.py +23 -22
- jettask/persistence/maintenance.py +81 -0
- jettask/persistence/message_consumer.py +259 -0
- jettask/{backend/namespace_data_access.py → persistence/namespace.py} +66 -98
- jettask/persistence/offline_recovery.py +196 -0
- jettask/persistence/queue_discovery.py +215 -0
- jettask/persistence/task_persistence.py +218 -0
- jettask/persistence/task_updater.py +583 -0
- jettask/scheduler/__init__.py +2 -2
- jettask/scheduler/loader.py +6 -5
- jettask/scheduler/run_scheduler.py +1 -1
- jettask/scheduler/scheduler.py +7 -7
- jettask/scheduler/{unified_scheduler_manager.py → scheduler_coordinator.py} +18 -13
- jettask/task/__init__.py +16 -0
- jettask/{router.py → task/router.py} +26 -8
- jettask/task/task_center/__init__.py +9 -0
- jettask/task/task_executor.py +318 -0
- jettask/task/task_registry.py +291 -0
- jettask/test_connection_monitor.py +73 -0
- jettask/utils/__init__.py +31 -1
- jettask/{monitor/run_backlog_collector.py → utils/backlog_collector.py} +1 -1
- jettask/utils/db_connector.py +1629 -0
- jettask/{db_init.py → utils/db_init.py} +1 -1
- jettask/utils/rate_limit/__init__.py +30 -0
- jettask/utils/rate_limit/concurrency_limiter.py +665 -0
- jettask/utils/rate_limit/config.py +145 -0
- jettask/utils/rate_limit/limiter.py +41 -0
- jettask/utils/rate_limit/manager.py +269 -0
- jettask/utils/rate_limit/qps_limiter.py +154 -0
- jettask/utils/rate_limit/task_limiter.py +384 -0
- jettask/utils/serializer.py +3 -0
- jettask/{monitor/stream_backlog_monitor.py → utils/stream_backlog.py} +14 -6
- jettask/utils/time_sync.py +173 -0
- jettask/webui/__init__.py +27 -0
- jettask/{api/v1 → webui/api}/alerts.py +1 -1
- jettask/{api/v1 → webui/api}/analytics.py +2 -2
- jettask/{api/v1 → webui/api}/namespaces.py +1 -1
- jettask/{api/v1 → webui/api}/overview.py +1 -1
- jettask/{api/v1 → webui/api}/queues.py +3 -3
- jettask/{api/v1 → webui/api}/scheduled.py +1 -1
- jettask/{api/v1 → webui/api}/settings.py +1 -1
- jettask/{api.py → webui/app.py} +253 -145
- jettask/webui/namespace_manager/__init__.py +10 -0
- jettask/{multi_namespace_consumer.py → webui/namespace_manager/multi.py} +69 -22
- jettask/{unified_consumer_manager.py → webui/namespace_manager/unified.py} +1 -1
- jettask/{run.py → webui/run.py} +2 -2
- jettask/{services → webui/services}/__init__.py +1 -3
- jettask/{services → webui/services}/overview_service.py +34 -16
- jettask/{services → webui/services}/queue_service.py +1 -1
- jettask/{backend → webui/services}/queue_stats_v2.py +1 -1
- jettask/{services → webui/services}/settings_service.py +1 -1
- jettask/worker/__init__.py +53 -0
- jettask/worker/lifecycle.py +1507 -0
- jettask/worker/manager.py +583 -0
- jettask/{core/offline_worker_recovery.py → worker/recovery.py} +268 -175
- {jettask-0.2.19.dist-info → jettask-0.2.23.dist-info}/METADATA +2 -71
- jettask-0.2.23.dist-info/RECORD +145 -0
- jettask/__main__.py +0 -140
- jettask/api/__init__.py +0 -103
- jettask/backend/__init__.py +0 -1
- jettask/backend/api/__init__.py +0 -3
- jettask/backend/api/v1/__init__.py +0 -17
- jettask/backend/api/v1/monitoring.py +0 -431
- jettask/backend/api/v1/namespaces.py +0 -504
- jettask/backend/api/v1/queues.py +0 -342
- jettask/backend/api/v1/tasks.py +0 -367
- jettask/backend/core/__init__.py +0 -3
- jettask/backend/core/cache.py +0 -221
- jettask/backend/core/database.py +0 -200
- jettask/backend/core/exceptions.py +0 -102
- jettask/backend/dependencies.py +0 -261
- jettask/backend/init_meta_db.py +0 -158
- jettask/backend/main.py +0 -1426
- jettask/backend/main_unified.py +0 -78
- jettask/backend/main_v2.py +0 -394
- jettask/backend/models/__init__.py +0 -3
- jettask/backend/models/requests.py +0 -236
- jettask/backend/models/responses.py +0 -230
- jettask/backend/namespace_api_old.py +0 -267
- jettask/backend/services/__init__.py +0 -3
- jettask/backend/start.py +0 -42
- jettask/backend/unified_api_router.py +0 -1541
- jettask/cleanup_deprecated_tables.sql +0 -16
- jettask/core/consumer_manager.py +0 -1695
- jettask/core/delay_scanner.py +0 -256
- jettask/core/event_pool.py +0 -1700
- jettask/core/heartbeat_process.py +0 -222
- jettask/core/task_batch.py +0 -153
- jettask/core/worker_scanner.py +0 -271
- jettask/executors/__init__.py +0 -5
- jettask/executors/asyncio.py +0 -876
- jettask/executors/base.py +0 -30
- jettask/executors/common.py +0 -148
- jettask/executors/multi_asyncio.py +0 -309
- jettask/gradio_app.py +0 -570
- jettask/integrated_gradio_app.py +0 -1088
- jettask/main.py +0 -0
- jettask/monitoring/__init__.py +0 -3
- jettask/pg_consumer.py +0 -1896
- jettask/run_monitor.py +0 -22
- jettask/run_webui.py +0 -148
- jettask/scheduler/multi_namespace_scheduler.py +0 -294
- jettask/scheduler/unified_manager.py +0 -450
- jettask/task_center_client.py +0 -150
- jettask/utils/serializer_optimized.py +0 -33
- jettask/webui_exceptions.py +0 -67
- jettask-0.2.19.dist-info/RECORD +0 -150
- /jettask/{constants.py → config/constants.py} +0 -0
- /jettask/{backend/config.py → config/task_center.py} +0 -0
- /jettask/{pg_consumer → messaging/pg_consumer}/pg_consumer_v2.py +0 -0
- /jettask/{pg_consumer → messaging/pg_consumer}/sql/add_execution_time_field.sql +0 -0
- /jettask/{pg_consumer → messaging/pg_consumer}/sql/create_new_tables.sql +0 -0
- /jettask/{pg_consumer → messaging/pg_consumer}/sql/create_tables_v3.sql +0 -0
- /jettask/{pg_consumer → messaging/pg_consumer}/sql/migrate_to_new_structure.sql +0 -0
- /jettask/{pg_consumer → messaging/pg_consumer}/sql/modify_time_fields.sql +0 -0
- /jettask/{pg_consumer → messaging/pg_consumer}/sql_utils.py +0 -0
- /jettask/{models.py → persistence/models.py} +0 -0
- /jettask/scheduler/{manager.py → task_crud.py} +0 -0
- /jettask/{schema.sql → schemas/schema.sql} +0 -0
- /jettask/{task_center.py → task/task_center/client.py} +0 -0
- /jettask/{monitoring → utils}/file_watcher.py +0 -0
- /jettask/{services/redis_monitor_service.py → utils/redis_monitor.py} +0 -0
- /jettask/{api/v1 → webui/api}/__init__.py +0 -0
- /jettask/{webui_config.py → webui/config.py} +0 -0
- /jettask/{webui_models → webui/models}/__init__.py +0 -0
- /jettask/{webui_models → webui/models}/namespace.py +0 -0
- /jettask/{services → webui/services}/alert_service.py +0 -0
- /jettask/{services → webui/services}/analytics_service.py +0 -0
- /jettask/{services → webui/services}/scheduled_task_service.py +0 -0
- /jettask/{services → webui/services}/task_service.py +0 -0
- /jettask/{webui_sql → webui/sql}/batch_upsert_functions.sql +0 -0
- /jettask/{webui_sql → webui/sql}/verify_database.sql +0 -0
- {jettask-0.2.19.dist-info → jettask-0.2.23.dist-info}/WHEEL +0 -0
- {jettask-0.2.19.dist-info → jettask-0.2.23.dist-info}/entry_points.txt +0 -0
- {jettask-0.2.19.dist-info → jettask-0.2.23.dist-info}/licenses/LICENSE +0 -0
- {jettask-0.2.19.dist-info → jettask-0.2.23.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,145 @@
|
|
1
|
+
jettask/__init__.py,sha256=C0AN3n16zK3rQ_PbSTNDFSHLo9jKnwJs0P3cXO2QbII,1948
|
2
|
+
jettask/cli.py,sha256=6DEtMz8ZHgROx7rZO_xKa_Uva4DM1x8r-ZboFDUTgMc,38430
|
3
|
+
jettask/exceptions.py,sha256=aQTUpiF2ftiZwGORUHXatAKbDEzptUf6iP7ZOXBQ3tQ,1971
|
4
|
+
jettask/test_connection_monitor.py,sha256=KpmmMdDpeYM_rYACMHUdruNb4Xc8DZCUNTSuBVYIm-s,2195
|
5
|
+
jettask/config/__init__.py,sha256=gCfoHVfTWIRPbtY1-iE4ydf2lfOmEwTU3EoSJ7NbLIU,273
|
6
|
+
jettask/config/config.py,sha256=YdResg9uUD1rbmoumoIE-FkhMZ_skoRLgTlUjkLEEzQ,7111
|
7
|
+
jettask/config/constants.py,sha256=rw06U4WPSFk6f80blC0ebkqnPUS_eteKQesTSBXKn6A,7028
|
8
|
+
jettask/config/env_loader.py,sha256=P2uO63mAHfhu9Pqa_Hh0JKWmeFDptudSHgBI-fyr0sA,10558
|
9
|
+
jettask/config/lua_scripts.py,sha256=CDRLFsoLaEInBgS1ScfLEgJo4yj5q64316TCV_Yupmo,4835
|
10
|
+
jettask/config/nacos_config.py,sha256=6SUq5kAnqapQFoewZzrveDOp5EmtR9ie6Deh5ObbuQE,19690
|
11
|
+
jettask/config/performance.py,sha256=bOdLEskfB_6cRfS10IRgmtKEsJw_CaIZsPHbXxaHwbU,5686
|
12
|
+
jettask/config/task_center.py,sha256=dJ9UkWRR1kulHFhfSVXmT_bM-N7yEMJdp0JylUkrLZ4,2062
|
13
|
+
jettask/core/__init__.py,sha256=3qnUjllxsvy9gqJEKnJbQeJcSEmxdWUwwzumdJG5vKI,198
|
14
|
+
jettask/core/app.py,sha256=pw1SCDBYXMr0flgJ0W2u3fDOXGJBuX5ac9148xVt3UA,106202
|
15
|
+
jettask/core/app_importer.py,sha256=04wRDCp5NFNiDkDhMOM7CdaHS_0b0cYylnYpXie8fwM,11018
|
16
|
+
jettask/core/container.py,sha256=3jCKcQCw2quuBj0C2UBScxgJhm_cqxSwaPalnixCQ7M,18132
|
17
|
+
jettask/core/context.py,sha256=XI4Q1s75NIWImcrHIkCLgGo_kpuJIk8MlBoNIJuEfF0,993
|
18
|
+
jettask/core/enums.py,sha256=ufXI5OcGZoOSbLEyAWtnkZVO-LcqNbIOygyjLLa6ce8,4632
|
19
|
+
jettask/core/message.py,sha256=WDOY8kvoV6at4MsIP01c3GJmIwHvRnUHimli6NKcw8w,4340
|
20
|
+
jettask/core/retry.py,sha256=lX56Z0fvKjEhVbYPHYdoN-W4XUPVplHlfIOupBylEeI,10711
|
21
|
+
jettask/core/task.py,sha256=AVd7b8d9l9wF6cYlL1BeJw6jMIv3EK0xntXppfI0qyM,5200
|
22
|
+
jettask/core/unified_manager_base.py,sha256=_6ob5LOQfW6OCZr_UydebIqtMB4AjumdTWw9pE4bEss,12054
|
23
|
+
jettask/executor/__init__.py,sha256=OGYeG7KSyvo7zrp4VAyTQNNfp0r5TVWkmfb4ZfegyL0,1033
|
24
|
+
jettask/executor/core.py,sha256=L18LPMRmf_B4QbwQMGj7fZysf4LMFrJ_ZFb0o9hpH3s,25299
|
25
|
+
jettask/executor/executor.py,sha256=TpckdygPpku1Fl1fN3fqP4IH50SXkA-0U7-J0IZHjr8,13591
|
26
|
+
jettask/executor/orchestrator.py,sha256=DS5dYnYnp7sISLb5hLBcPNhP-Tqvd5NxhoBE-4iWxRQ,9986
|
27
|
+
jettask/executor/process_entry.py,sha256=r3t1WhGZdGrQPVdZ_HcEjYreZcejlmyT26-MU0udI5E,22221
|
28
|
+
jettask/executor/task_executor.py,sha256=muWd6K9WLYkbDBt4c7gdUNvAfg9g3hw_Xa4y2OqdeFU,11110
|
29
|
+
jettask/messaging/__init__.py,sha256=hWv1p5kmud8nTbx-KceKkmaYbvYWhzJWNR8OzTvoRP0,1961
|
30
|
+
jettask/messaging/event_pool.py,sha256=Ns2TZ_Zb5OdVAnROtogjKYbahwjBZapfUgqWFgSIXmo,109540
|
31
|
+
jettask/messaging/reader.py,sha256=hlOYzU1LJrm7OhKb5iBrUjqHjsN3sN5FGKYHLiHGHes,17556
|
32
|
+
jettask/messaging/registry.py,sha256=wG6SvyoCFMDggGd_SaDlLKaBcUPWzlblcGLMRhJwx90,10290
|
33
|
+
jettask/messaging/scanner.py,sha256=bHK0W6KgZWne6S6yyyMoyBzRiEdJec0EsJsxo0oxG50,14336
|
34
|
+
jettask/messaging/sender.py,sha256=cz98GiSMQhKxUyEkPmOHUIG78GFMW_f-P4j-KUCVMrE,10051
|
35
|
+
jettask/messaging/pg_consumer/pg_consumer_v2.py,sha256=ajd6ZM_HY9YWK_I5BNbGuWxNqSS892d3ZzvDlTSQgwc,16211
|
36
|
+
jettask/messaging/pg_consumer/sql_utils.py,sha256=dZM_8kIzUmRq0me4yLwb3UeoDvIVKJdIc9VNP1nbS0E,6461
|
37
|
+
jettask/messaging/pg_consumer/sql/add_execution_time_field.sql,sha256=z2Jx-0uG-IW5RsTGxcLFu2_BcMReluEptMJWB6Qrj08,1184
|
38
|
+
jettask/messaging/pg_consumer/sql/create_new_tables.sql,sha256=layb08_MFGVSE-NQEcjlQBklZ307JtJaccrnqkcj7Vg,6566
|
39
|
+
jettask/messaging/pg_consumer/sql/create_tables_v3.sql,sha256=ZwBjxKWU6imWACoWMCIACLsYUPiPep9WmJsdIjI2a58,8173
|
40
|
+
jettask/messaging/pg_consumer/sql/migrate_to_new_structure.sql,sha256=elhObWvbtqAhb4osJC6D5JhxcOxhGJgIBqx4ItB_xO8,5716
|
41
|
+
jettask/messaging/pg_consumer/sql/modify_time_fields.sql,sha256=mRfoXbP9iXbAJBj-xNume8-4AV_UPQcBALNUqEf3aKw,2572
|
42
|
+
jettask/persistence/__init__.py,sha256=StmZ-mbA2Cj8W3LbpUnK7v-3RIgVBRHRcX03h7TlM74,3307
|
43
|
+
jettask/persistence/backlog_monitor.py,sha256=2ifGlRhYODQPkZ-T4O8RXfQDH-6jg6MlO_9ycqAJk1Y,28213
|
44
|
+
jettask/persistence/base.py,sha256=AZaOJWIuWsShPtqxYVdDtuZ7ThCBcCyUtGQyNSprotk,115207
|
45
|
+
jettask/persistence/consumer.py,sha256=qtAHXffGelXAKvsAGK2x_G-1qMnohUxKhCIr1PoX0lQ,10816
|
46
|
+
jettask/persistence/db_manager.py,sha256=ZboNUSWaXMuvz9TCJXkhVCxi2IJu7LVFU59PDVPVh_k,17623
|
47
|
+
jettask/persistence/maintenance.py,sha256=vJKaxYrIyfFbaInMFIywIk-MOOiLjileNrvUkOQ7r0Q,2470
|
48
|
+
jettask/persistence/message_consumer.py,sha256=MIKXOmYq04He2xlKfV2mReqsTH_Sd4XiCdPi29zqIio,10101
|
49
|
+
jettask/persistence/models.py,sha256=QHYqU_6X5mTDFW_DA1aFQJ6kdmFRgVs4shqr7RJUXzk,2026
|
50
|
+
jettask/persistence/namespace.py,sha256=eJ9jbjif0AZLddHJ5J3ZR79eosi96daezqi_p_Yl7AU,24445
|
51
|
+
jettask/persistence/offline_recovery.py,sha256=yWFjHGxXXRalw0pFBPxBuU_CG6OliU3f-e7mnEljOLs,7752
|
52
|
+
jettask/persistence/queue_discovery.py,sha256=BieCEwL0kKJgMi56Hyhjc4Qtw5W5tooSD-9ZIaL9DQw,8703
|
53
|
+
jettask/persistence/task_persistence.py,sha256=JL05gxNY-UjnFGWA5OghAzoxTiqcft8ZFkJap15wig4,8943
|
54
|
+
jettask/persistence/task_updater.py,sha256=7_bxLwTAiWHcxbjeTQz5-5_M8HZJxrn13v9Fltooq18,26944
|
55
|
+
jettask/scheduler/__init__.py,sha256=zWTOVfRhi-icqlXLEzkQo28M1XGQky6UwdAqCCd5LEs,373
|
56
|
+
jettask/scheduler/add_execution_count.sql,sha256=x4jBsOFGj4JvEd-Ene3OhbR5QCKh5rv8dF01_qLSeE8,383
|
57
|
+
jettask/scheduler/add_priority_field.sql,sha256=z9S10u2D2eekVqB8xOAtDD4Rw1Ey497cmDL4pN2MgB0,915
|
58
|
+
jettask/scheduler/add_scheduler_id.sql,sha256=uDPSnYVjGE75LcOMKuT2kMEbCPW1JEbDq0uMqmN68aQ,818
|
59
|
+
jettask/scheduler/add_scheduler_id_index.sql,sha256=xaY4uXa5QitIEgx4tcDqh1SRZ1NIZXuq5NtQQH_4Liw,471
|
60
|
+
jettask/scheduler/loader.py,sha256=w6tQXJPRap0GRbT2lzzH4J3oG8FBWxA7B-0iNKBXR7s,8815
|
61
|
+
jettask/scheduler/make_scheduler_id_required.sql,sha256=ksZ8rA7cAobrcQk3t93CrTePE2G40KQNESqA9WyPF50,854
|
62
|
+
jettask/scheduler/migrate_interval_seconds.sql,sha256=40MSij1-YsOX7mQU958v7Qsse6NCId0R6NkZEjeWr-8,391
|
63
|
+
jettask/scheduler/models.py,sha256=Mv-csKjsrYp4nI2H6IldCh6avu-9ke5YTfyufhlYjKI,7376
|
64
|
+
jettask/scheduler/performance_optimization.sql,sha256=sXa5dh4DAAgjj8CsfByjCePcAXtGnxKwwPyMgbMbG2I,1733
|
65
|
+
jettask/scheduler/run_scheduler.py,sha256=ptJqiNRvQ7FjrHKEHxpjGjzY497ZlCtsdzbqfLE1jcM,6307
|
66
|
+
jettask/scheduler/scheduler.py,sha256=Fg6o11gsfkLntlClczCgbutcjCaYLGQdoTCMJvZ1Ows,27765
|
67
|
+
jettask/scheduler/scheduler_coordinator.py,sha256=lDBc_as3Zge6uaQ45s-t4ADlFXrm1zoZT4plpsQXj18,12034
|
68
|
+
jettask/scheduler/schema.sql,sha256=iBGUrsMYv9_FQCr_0b5DC-XFUXOaLIjnwWH-yvy4LdM,4109
|
69
|
+
jettask/scheduler/task_crud.py,sha256=atbDUwlW5NmzrEx63FtKcr508qWfSja5pcE8NDIdo_U,26508
|
70
|
+
jettask/schemas/__init__.py,sha256=YtyBjdLtZCceqmeVohlykFdgl5xtF_w9jtRmBfMRlqk,3170
|
71
|
+
jettask/schemas/alert.py,sha256=Od29QjDrnLN1Tw_F2rPFSGsqRvbBcO2hf1d8GO1_WEQ,4958
|
72
|
+
jettask/schemas/backlog.py,sha256=Qxl5I2cVI1ek1JujLl8I55IFINpXZr0Kbd1WWoyyRQg,5493
|
73
|
+
jettask/schemas/common.py,sha256=e1lrLnOpxKT25FH7QnDQy38Qj4SGqd_cwHvRObTuRZw,6038
|
74
|
+
jettask/schemas/monitoring.py,sha256=zPfNv6YXw3uufj61PseQTaQkpwa9azgsnCGUaF4HNUk,8084
|
75
|
+
jettask/schemas/namespace.py,sha256=0KZC2V--mmMIxzS7Yn2P4ue6lo9Ui0HGcez8gfNK8Vo,8625
|
76
|
+
jettask/schemas/queue.py,sha256=uier_qvrJWiZYh6m1rWM84mBjoKS6DjABM0WBTu9ToM,3968
|
77
|
+
jettask/schemas/scheduled_task.py,sha256=MPAXvDeqmyQTWhL31yS94mRuzJWOV4njukp6BQrX6K4,7130
|
78
|
+
jettask/schemas/schema.sql,sha256=IY-vLzj3TYoR4p51ChLuSxzo4KU1PQNFNDutc7p0nHg,4490
|
79
|
+
jettask/schemas/task.py,sha256=niW2F_84HvstAjX3vo2pZswoRwMCF3DIoONuHwWNwtk,3172
|
80
|
+
jettask/task/__init__.py,sha256=nECqS7nlNL3lDysCRwnlISYCd-vGoITyhaDrtcWXEos,306
|
81
|
+
jettask/task/router.py,sha256=jJlf0N84CEoTWZSF-LHyU-kGVPFvAmfd7kksJpDZz0M,5731
|
82
|
+
jettask/task/task_executor.py,sha256=lunxXHKM9mg5Sf1yD-ViQ-3DAFqFRiPDo7VWca6KTB8,9848
|
83
|
+
jettask/task/task_registry.py,sha256=HYq6S9XWvavhy7UJeOGQSTR5LF0V_vyACcZ12yIMS68,7987
|
84
|
+
jettask/task/task_center/__init__.py,sha256=Ed_D427tD59wTeqfbjckB-qKrCPnRLuzWovpQRW9uFs,132
|
85
|
+
jettask/task/task_center/client.py,sha256=BcJOaKAeUKDl75GQzoQdBkZdBiC4gPxLrNa5VbKC86I,8537
|
86
|
+
jettask/utils/__init__.py,sha256=k7ELbxwRcDOv_tiHzVhOPce00frVp1HthYE7_b_1tw4,898
|
87
|
+
jettask/utils/backlog_collector.py,sha256=U3_TGHtcD4CbKOyFkbOShht8wkEeCwJ38QiZTvDgEn0,2523
|
88
|
+
jettask/utils/db_connector.py,sha256=5g4JbBW3JEwj6glZuUYW7WNzBGfnoUz5EPzSatSdsVY,59258
|
89
|
+
jettask/utils/db_init.py,sha256=Jdxjnt_VVvXD2f-oXvuNsfu2i8G9eMFs5fbpILjXCi8,15363
|
90
|
+
jettask/utils/error_handler.py,sha256=9iYHCInUkEkP9o07dUgPxQr4aWqR5FUhnNWLgB0TEqM,2794
|
91
|
+
jettask/utils/exception_hook.py,sha256=Fp0m71_jjmmZvyoELARSsPIvSVPCmMQMVC1FxMFOoHQ,1765
|
92
|
+
jettask/utils/file_watcher.py,sha256=r3Mgekb_5sOssDrnFBCbbyvpWkwD2ZPA_j22ztzRCT0,1207
|
93
|
+
jettask/utils/helpers.py,sha256=uTdyRFZsdwSQzuEcNoGgADuVnHaDEYq6JQP6zVxAj04,3368
|
94
|
+
jettask/utils/logger.py,sha256=PcZgUtx7I9pe90Y8WgPQtKhMefd1oQ14pgUlKCFpCXo,843
|
95
|
+
jettask/utils/redis_monitor.py,sha256=2l6fF2qAtctS9HUaEV3acJMJ5zhkvT4iygJGhGBCoKw,3660
|
96
|
+
jettask/utils/serializer.py,sha256=Omnnbpp9FuRDugqan2QK75kVV91Rv07kN-hzqCC_3G4,856
|
97
|
+
jettask/utils/stream_backlog.py,sha256=2v491i9t2qqqgDIVr2iAVSRhSZgPm0q94VInzXeiQY4,15977
|
98
|
+
jettask/utils/task_logger.py,sha256=kauCgiDDzhuge3wk-BXR_KwytOfmrrVBKe1S4XUWBXU,13628
|
99
|
+
jettask/utils/time_sync.py,sha256=DcZWboLKa9DwyQgDGGZGNLrQrMRVaJXJLk0xCDUW0B4,5209
|
100
|
+
jettask/utils/traceback_filter.py,sha256=2svLo5_OoosAbS08UpceeWtjSKkdx-Fp6U-ysJQkroY,3025
|
101
|
+
jettask/utils/rate_limit/__init__.py,sha256=Ahl96s0BqSofOIsQUIHfc2QpO46GezjtLXC7QzOFpKs,810
|
102
|
+
jettask/utils/rate_limit/concurrency_limiter.py,sha256=p43f-RuGupb2mSc3PJ1JWYj5aihQqk4h5LA0BZyG880,27390
|
103
|
+
jettask/utils/rate_limit/config.py,sha256=ChOQ2AWUBMbq3lTImYZ59UBwDPAetJ3UcV0WuhHPUgY,3862
|
104
|
+
jettask/utils/rate_limit/limiter.py,sha256=itH_APz7m5qBntJtlfF120OvkD1N7hKuiwPtu6OF28U,1285
|
105
|
+
jettask/utils/rate_limit/manager.py,sha256=R9dqczrJYpVhcecMASEYdnPDKmSVaNwmdnzrzLvadZg,9535
|
106
|
+
jettask/utils/rate_limit/qps_limiter.py,sha256=npo6_Sw51AT9I4OvRfsYZddViF6cZQl5DpW8XDWRRBo,4787
|
107
|
+
jettask/utils/rate_limit/task_limiter.py,sha256=7QaK1IR8rF-h1e-4-loxFL5tBiQPceFXLCdqcK8Rpl4,14072
|
108
|
+
jettask/webui/__init__.py,sha256=mp8_t2FoB9WZ42_JufKPtXN_XIYF91rOjKcqiNtlGwo,592
|
109
|
+
jettask/webui/app.py,sha256=NQD8nrqJaxNC0e5il8lKoAVNTTjPdP1Sm5IpiFMxokg,100780
|
110
|
+
jettask/webui/config.py,sha256=8THiJZIbnmhMN3iVvynGuE2U8POxvldcG8pqwXFkWGo,2854
|
111
|
+
jettask/webui/run.py,sha256=31lH_b3XL1h70QJZmFX3gcM6XB9qwVUC__O8mnRl5Yk,1439
|
112
|
+
jettask/webui/api/__init__.py,sha256=AvzzOJ1W38LrDkyPiNQODaGiSdF4olYR0xy-ZpyIIJg,1243
|
113
|
+
jettask/webui/api/alerts.py,sha256=YLagFP6pgCUY7mDRNPyhWdLdgOixuJk6gjxmb_ylQm4,6220
|
114
|
+
jettask/webui/api/analytics.py,sha256=oQVHwfRX2YxjomBJz11XjD_c-vkyW86-SVF6YjKgBsk,8593
|
115
|
+
jettask/webui/api/namespaces.py,sha256=Q2iouVBficDBbuodk87-Iz82EyJlv3VjXhmXA1Pmky8,4206
|
116
|
+
jettask/webui/api/overview.py,sha256=5RzyzIZW4PWZT0FqZxeriCVVDo7wmtIjda1TOslbI9k,4181
|
117
|
+
jettask/webui/api/queues.py,sha256=BeNdsEuExZFQUKa_9bav53lXoDnpqVoknDR6bIm2DiI,17666
|
118
|
+
jettask/webui/api/scheduled.py,sha256=59O1IX3T9Hwur_kUKB_oXT9eEm8evs3CCPFlRHuak70,13490
|
119
|
+
jettask/webui/api/settings.py,sha256=i_1bDuntrGjt0oFwCxmOyiqvcjN7HQnnl7dxeisd6oA,1190
|
120
|
+
jettask/webui/models/__init__.py,sha256=5cv0oZksj1B3_rzCqsPmF3Gn9NRZLwzMnaJ8bOKGB4I,25
|
121
|
+
jettask/webui/models/namespace.py,sha256=jDj-hZF_-wXzrWAWVDyZVU0JUWDax9apb4Gyykwg-rE,2006
|
122
|
+
jettask/webui/namespace_manager/__init__.py,sha256=B5W3NgbmGJkK5kVE2K95VcnmU6qTHyV559KzUkdZjU8,250
|
123
|
+
jettask/webui/namespace_manager/multi.py,sha256=JKX1_VNy0KOnDR4v5_t7MHLllw4oGXj8ML_1LJGhIu4,25801
|
124
|
+
jettask/webui/namespace_manager/unified.py,sha256=Ricox-XE2XkCvTC2vcpkyIRm7JJRY0sCQUC0o869f5I,7405
|
125
|
+
jettask/webui/services/__init__.py,sha256=ozDxcpcQFC6sT6_sndEj_EtiBozUr2N20jdb1nqqrC8,548
|
126
|
+
jettask/webui/services/alert_service.py,sha256=AIk4hjx-yoFnl5vPff7TMwjgjheKu91da9mZ5gYDroo,14169
|
127
|
+
jettask/webui/services/analytics_service.py,sha256=zLTtGUJ7wYIU7O5NP_VS_-wk_IXNfxKikAvQ3aaeCmI,1101
|
128
|
+
jettask/webui/services/overview_service.py,sha256=UuaulrPko85e7bfiPDdb1KBRlUrBzK_i8LEbW1MLiDE,37124
|
129
|
+
jettask/webui/services/queue_service.py,sha256=3ONDfGos2xHtHZlWcAlaXzEo1Km-HTIllCpN3GPKKG0,27419
|
130
|
+
jettask/webui/services/queue_stats_v2.py,sha256=DW46_w1-3k9PozZScLUen0-wbHMTgxo346DLVmxsw5Q,24409
|
131
|
+
jettask/webui/services/scheduled_task_service.py,sha256=ZFFtcUdk_IDGm17maHA1Hb0p00_56QqQ9ETFAF7T1bU,6226
|
132
|
+
jettask/webui/services/settings_service.py,sha256=YCALdetGBe-LE2FSSuGLtauQQm8WMwCSXi6RO38lqBk,31568
|
133
|
+
jettask/webui/services/task_service.py,sha256=vfSEyhFxDcEzOuA4sHEg1sYvLriUUvJ08SQ2ICG7MSU,4751
|
134
|
+
jettask/webui/sql/batch_upsert_functions.sql,sha256=5eWOhOD8gWHhtcop_BrCpZTxPFeyBHtt_leNQZO89Cs,6615
|
135
|
+
jettask/webui/sql/verify_database.sql,sha256=HtTup3xHWbOo1BTU_u4i41E9LrPEXB8qYbChL9WeWOc,2313
|
136
|
+
jettask/worker/__init__.py,sha256=HUwUjZEWV6oaGJSUg26PPwVsIacAB8Tk8qzQQYvlMLM,1218
|
137
|
+
jettask/worker/lifecycle.py,sha256=eJ2GzmuP21Jiv6tEgeEPG3pgy7MvV1ylPcdVchzxg1E,58568
|
138
|
+
jettask/worker/manager.py,sha256=fIayGpH9nLqvxTv-hDwrVj41sQqid96ZzNjENCLR1Nk,19913
|
139
|
+
jettask/worker/recovery.py,sha256=I7Au9DPpsEhlILxYcnnC0H-Qw51rr97sUsy2pn43Czw,29120
|
140
|
+
jettask-0.2.23.dist-info/licenses/LICENSE,sha256=sKR8OPWvnqxzcHAmnaVSANpRpeM0Z52PNLCB0ZlFN6c,1062
|
141
|
+
jettask-0.2.23.dist-info/METADATA,sha256=a5XcV4INbNE37PilqcbNlKMO-cFX2wRbadZ10Rydk4w,1949
|
142
|
+
jettask-0.2.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
143
|
+
jettask-0.2.23.dist-info/entry_points.txt,sha256=9-8eTLJPgzpBgeGC8WHdMYtldZxHAXFspMeqArVUdew,148
|
144
|
+
jettask-0.2.23.dist-info/top_level.txt,sha256=uymyRUF87-OsSurk5NhpeTW0jy3Wltnn91Zoa6jmAaw,8
|
145
|
+
jettask-0.2.23.dist-info/RECORD,,
|
jettask/__main__.py
DELETED
@@ -1,140 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python3
|
2
|
-
"""WebUI启动入口"""
|
3
|
-
|
4
|
-
import sys
|
5
|
-
import os
|
6
|
-
import logging
|
7
|
-
import argparse
|
8
|
-
import asyncio
|
9
|
-
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
10
|
-
|
11
|
-
import uvicorn
|
12
|
-
from jettask.api import app
|
13
|
-
from jettask.webui_config import PostgreSQLConfig, WebUIConfig, RedisConfig
|
14
|
-
from jettask.db_init import init_database
|
15
|
-
from jettask.pg_consumer import PostgreSQLConsumer
|
16
|
-
|
17
|
-
def parse_pg_config(args):
|
18
|
-
"""解析PostgreSQL配置"""
|
19
|
-
if args.pg_url:
|
20
|
-
pg_config = PostgreSQLConfig.from_url(args.pg_url)
|
21
|
-
else:
|
22
|
-
pg_config = PostgreSQLConfig.from_env()
|
23
|
-
# 命令行参数覆盖环境变量
|
24
|
-
if hasattr(args, 'pg_host') and args.pg_host:
|
25
|
-
pg_config.host = args.pg_host
|
26
|
-
if hasattr(args, 'pg_port') and args.pg_port:
|
27
|
-
pg_config.port = args.pg_port
|
28
|
-
if hasattr(args, 'pg_database') and args.pg_database:
|
29
|
-
pg_config.database = args.pg_database
|
30
|
-
if hasattr(args, 'pg_user') and args.pg_user:
|
31
|
-
pg_config.user = args.pg_user
|
32
|
-
if hasattr(args, 'pg_password') and args.pg_password:
|
33
|
-
pg_config.password = args.pg_password
|
34
|
-
return pg_config
|
35
|
-
|
36
|
-
|
37
|
-
def add_pg_arguments(parser):
|
38
|
-
"""添加PostgreSQL相关参数"""
|
39
|
-
parser.add_argument('--pg-host', type=str, help='PostgreSQL host (env: JETTASK_PG_HOST)')
|
40
|
-
parser.add_argument('--pg-port', type=int, help='PostgreSQL port (env: JETTASK_PG_PORT)')
|
41
|
-
parser.add_argument('--pg-database', type=str, help='PostgreSQL database (env: JETTASK_PG_DATABASE)')
|
42
|
-
parser.add_argument('--pg-user', type=str, help='PostgreSQL user (env: JETTASK_PG_USER)')
|
43
|
-
parser.add_argument('--pg-password', type=str, help='PostgreSQL password (env: JETTASK_PG_PASSWORD)')
|
44
|
-
parser.add_argument('--pg-url', type=str, help='PostgreSQL URL (postgresql://user:pass@host:port/db)')
|
45
|
-
|
46
|
-
|
47
|
-
if __name__ == "__main__":
|
48
|
-
# 创建主解析器
|
49
|
-
parser = argparse.ArgumentParser(description='Jettask WebUI')
|
50
|
-
subparsers = parser.add_subparsers(dest='command', help='可用命令', required=True)
|
51
|
-
|
52
|
-
# 创建 run 子命令
|
53
|
-
run_parser = subparsers.add_parser('run', help='运行WebUI服务器')
|
54
|
-
run_parser.add_argument('--port', type=int, default=8080, help='服务器端口')
|
55
|
-
run_parser.add_argument('--host', type=str, default='0.0.0.0', help='服务器地址')
|
56
|
-
run_parser.add_argument('--with-consumer', action='store_true', help='启动内置的PostgreSQL消费者(默认不启动)')
|
57
|
-
add_pg_arguments(run_parser)
|
58
|
-
|
59
|
-
# 创建 init 子命令
|
60
|
-
init_parser = subparsers.add_parser('init', help='初始化PostgreSQL数据库')
|
61
|
-
add_pg_arguments(init_parser)
|
62
|
-
|
63
|
-
# 创建 consumer 子命令
|
64
|
-
consumer_parser = subparsers.add_parser('consumer', help='运行PostgreSQL消费者')
|
65
|
-
add_pg_arguments(consumer_parser)
|
66
|
-
consumer_parser.add_argument('--redis-host', type=str, default='localhost', help='Redis主机地址')
|
67
|
-
consumer_parser.add_argument('--redis-port', type=int, default=6379, help='Redis端口')
|
68
|
-
consumer_parser.add_argument('--redis-db', type=int, default=0, help='Redis数据库')
|
69
|
-
consumer_parser.add_argument('--redis-password', type=str, help='Redis密码')
|
70
|
-
consumer_parser.add_argument('--node-id', type=str, help='节点ID(用于分布式部署)')
|
71
|
-
consumer_parser.add_argument('--prefix', type=str, default='jettask', help='Redis键前缀')
|
72
|
-
|
73
|
-
# 解析参数
|
74
|
-
args = parser.parse_args()
|
75
|
-
|
76
|
-
# 执行相应的命令
|
77
|
-
if args.command == 'init':
|
78
|
-
# 初始化数据库
|
79
|
-
pg_config = parse_pg_config(args)
|
80
|
-
asyncio.run(init_database(pg_config))
|
81
|
-
|
82
|
-
elif args.command == 'run':
|
83
|
-
# 运行服务器
|
84
|
-
pg_config = parse_pg_config(args)
|
85
|
-
|
86
|
-
# 设置应用配置
|
87
|
-
app.state.pg_config = pg_config
|
88
|
-
app.state.enable_consumer = args.with_consumer # 默认不启动,需要显式指定
|
89
|
-
|
90
|
-
# 配置日志
|
91
|
-
logging.basicConfig(
|
92
|
-
level=logging.INFO,
|
93
|
-
format='%(asctime)s - %(levelname)s - %(message)s',
|
94
|
-
datefmt='%Y-%m-%d %H:%M:%S'
|
95
|
-
)
|
96
|
-
|
97
|
-
uvicorn.run(app, host=args.host, port=args.port)
|
98
|
-
|
99
|
-
elif args.command == 'consumer':
|
100
|
-
# 运行独立的PostgreSQL消费者
|
101
|
-
pg_config = parse_pg_config(args)
|
102
|
-
|
103
|
-
# 解析Redis配置
|
104
|
-
redis_config = RedisConfig(
|
105
|
-
host=args.redis_host,
|
106
|
-
port=args.redis_port,
|
107
|
-
db=args.redis_db,
|
108
|
-
password=args.redis_password
|
109
|
-
)
|
110
|
-
|
111
|
-
# 配置日志
|
112
|
-
logging.basicConfig(
|
113
|
-
level=logging.INFO,
|
114
|
-
format='%(asctime)s - %(levelname)s - %(message)s',
|
115
|
-
datefmt='%Y-%m-%d %H:%M:%S'
|
116
|
-
)
|
117
|
-
|
118
|
-
# 运行消费者
|
119
|
-
async def run_consumer():
|
120
|
-
consumer = PostgreSQLConsumer(
|
121
|
-
pg_config=pg_config,
|
122
|
-
redis_config=redis_config,
|
123
|
-
prefix=args.prefix,
|
124
|
-
node_id=args.node_id
|
125
|
-
)
|
126
|
-
|
127
|
-
try:
|
128
|
-
await consumer.start()
|
129
|
-
logging.info(f"PostgreSQL consumer started on node: {consumer.node_id}")
|
130
|
-
|
131
|
-
# 保持运行
|
132
|
-
while True:
|
133
|
-
await asyncio.sleep(1)
|
134
|
-
|
135
|
-
except KeyboardInterrupt:
|
136
|
-
logging.info("Received interrupt signal")
|
137
|
-
finally:
|
138
|
-
await consumer.stop()
|
139
|
-
|
140
|
-
asyncio.run(run_consumer())
|
jettask/api/__init__.py
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
JetTask API 应用初始化
|
3
|
-
"""
|
4
|
-
from fastapi import FastAPI
|
5
|
-
from fastapi.middleware.cors import CORSMiddleware
|
6
|
-
from contextlib import asynccontextmanager
|
7
|
-
import logging
|
8
|
-
|
9
|
-
# 设置日志
|
10
|
-
logging.basicConfig(level=logging.INFO)
|
11
|
-
logger = logging.getLogger(__name__)
|
12
|
-
|
13
|
-
|
14
|
-
def create_app() -> FastAPI:
|
15
|
-
"""创建并配置 FastAPI 应用"""
|
16
|
-
|
17
|
-
@asynccontextmanager
|
18
|
-
async def lifespan(app: FastAPI):
|
19
|
-
"""应用生命周期管理"""
|
20
|
-
# 启动时初始化
|
21
|
-
try:
|
22
|
-
import os
|
23
|
-
# 检查是否使用Nacos配置
|
24
|
-
use_nacos = os.getenv('USE_NACOS', 'false').lower() == 'true'
|
25
|
-
|
26
|
-
# 初始化数据库管理器
|
27
|
-
from jettask.core.db_manager import init_db_manager
|
28
|
-
await init_db_manager(use_nacos=use_nacos)
|
29
|
-
|
30
|
-
# 延迟导入,避免循环依赖
|
31
|
-
from jettask.backend.data_access import JetTaskDataAccess
|
32
|
-
from jettask.backend.namespace_data_access import get_namespace_data_access
|
33
|
-
from jettask.backend.config import task_center_config
|
34
|
-
|
35
|
-
# 创建数据访问实例
|
36
|
-
data_access = JetTaskDataAccess()
|
37
|
-
namespace_data_access = get_namespace_data_access()
|
38
|
-
|
39
|
-
# 存储在app.state中供路由使用
|
40
|
-
app.state.data_access = data_access
|
41
|
-
app.state.namespace_data_access = namespace_data_access
|
42
|
-
|
43
|
-
# 初始化JetTask数据访问
|
44
|
-
await data_access.initialize()
|
45
|
-
|
46
|
-
# 记录任务中心配置
|
47
|
-
logger.info("=" * 60)
|
48
|
-
logger.info("任务中心配置:")
|
49
|
-
logger.info(f" 配置模式: {'Nacos' if use_nacos else '环境变量'}")
|
50
|
-
logger.info(f" 元数据库: {task_center_config.meta_db_host}:{task_center_config.meta_db_port}/{task_center_config.meta_db_name}")
|
51
|
-
logger.info(f" API服务: {task_center_config.api_host}:{task_center_config.api_port}")
|
52
|
-
logger.info(f" 基础URL: {task_center_config.base_url}")
|
53
|
-
logger.info("=" * 60)
|
54
|
-
|
55
|
-
logger.info("JetTask Monitor API 启动成功")
|
56
|
-
except Exception as e:
|
57
|
-
logger.error(f"启动失败: {e}")
|
58
|
-
import traceback
|
59
|
-
traceback.print_exc()
|
60
|
-
raise
|
61
|
-
|
62
|
-
yield
|
63
|
-
|
64
|
-
# 关闭时清理资源
|
65
|
-
try:
|
66
|
-
await app.state.data_access.close()
|
67
|
-
|
68
|
-
# 关闭数据库管理器
|
69
|
-
from jettask.core.db_manager import close_db_manager
|
70
|
-
await close_db_manager()
|
71
|
-
|
72
|
-
logger.info("JetTask Monitor API 关闭完成")
|
73
|
-
except Exception as e:
|
74
|
-
logger.error(f"关闭时出错: {e}")
|
75
|
-
import traceback
|
76
|
-
traceback.print_exc()
|
77
|
-
|
78
|
-
# 创建 FastAPI 应用
|
79
|
-
app = FastAPI(
|
80
|
-
title="JetTask Monitor API",
|
81
|
-
version="1.0.0",
|
82
|
-
lifespan=lifespan
|
83
|
-
)
|
84
|
-
|
85
|
-
# 配置CORS
|
86
|
-
app.add_middleware(
|
87
|
-
CORSMiddleware,
|
88
|
-
allow_origins=["*"], # 生产环境应该配置具体的前端地址
|
89
|
-
allow_credentials=True,
|
90
|
-
allow_methods=["*"],
|
91
|
-
allow_headers=["*"],
|
92
|
-
)
|
93
|
-
|
94
|
-
# 注册路由
|
95
|
-
from jettask.api.v1 import api_router
|
96
|
-
|
97
|
-
app.include_router(api_router)
|
98
|
-
|
99
|
-
return app
|
100
|
-
|
101
|
-
|
102
|
-
# 创建默认应用实例
|
103
|
-
app = create_app()
|
jettask/backend/__init__.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
# Backend package initialization
|
jettask/backend/api/__init__.py
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
API v1 routes
|
3
|
-
"""
|
4
|
-
from fastapi import APIRouter
|
5
|
-
from .queues import router as queues_router
|
6
|
-
from .tasks import router as tasks_router
|
7
|
-
from .monitoring import router as monitoring_router
|
8
|
-
from .namespaces import router as namespaces_router
|
9
|
-
|
10
|
-
# 创建v1路由器
|
11
|
-
v1_router = APIRouter(prefix="/v1")
|
12
|
-
|
13
|
-
# 注册子路由
|
14
|
-
v1_router.include_router(queues_router, prefix="/queues", tags=["queues"])
|
15
|
-
v1_router.include_router(tasks_router, prefix="/tasks", tags=["tasks"])
|
16
|
-
v1_router.include_router(monitoring_router, prefix="/monitoring", tags=["monitoring"])
|
17
|
-
v1_router.include_router(namespaces_router, prefix="/namespaces", tags=["namespaces"])
|