jettask 0.2.20__py3-none-any.whl → 0.2.24__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 +4 -0
- jettask/cli.py +12 -8
- jettask/config/lua_scripts.py +37 -0
- jettask/config/nacos_config.py +1 -1
- jettask/core/app.py +313 -340
- jettask/core/container.py +4 -4
- jettask/{persistence → core}/namespace.py +93 -27
- jettask/core/task.py +16 -9
- jettask/core/unified_manager_base.py +136 -26
- jettask/db/__init__.py +67 -0
- jettask/db/base.py +137 -0
- jettask/{utils/db_connector.py → db/connector.py} +130 -26
- jettask/db/models/__init__.py +16 -0
- jettask/db/models/scheduled_task.py +196 -0
- jettask/db/models/task.py +77 -0
- jettask/db/models/task_run.py +85 -0
- jettask/executor/__init__.py +0 -15
- jettask/executor/core.py +76 -31
- jettask/executor/process_entry.py +29 -114
- jettask/executor/task_executor.py +4 -0
- jettask/messaging/event_pool.py +928 -685
- jettask/messaging/scanner.py +30 -0
- jettask/persistence/__init__.py +28 -103
- jettask/persistence/buffer.py +170 -0
- jettask/persistence/consumer.py +330 -249
- jettask/persistence/manager.py +304 -0
- jettask/persistence/persistence.py +391 -0
- jettask/scheduler/__init__.py +15 -3
- jettask/scheduler/{task_crud.py → database.py} +61 -57
- jettask/scheduler/loader.py +2 -2
- jettask/scheduler/{scheduler_coordinator.py → manager.py} +23 -6
- jettask/scheduler/models.py +14 -10
- jettask/scheduler/schedule.py +166 -0
- jettask/scheduler/scheduler.py +12 -11
- jettask/schemas/__init__.py +50 -1
- jettask/schemas/backlog.py +43 -6
- jettask/schemas/namespace.py +70 -19
- jettask/schemas/queue.py +19 -3
- jettask/schemas/responses.py +493 -0
- jettask/task/__init__.py +0 -2
- jettask/task/router.py +3 -0
- jettask/test_connection_monitor.py +1 -1
- jettask/utils/__init__.py +7 -5
- jettask/utils/db_init.py +8 -4
- jettask/utils/namespace_dep.py +167 -0
- jettask/utils/queue_matcher.py +186 -0
- jettask/utils/rate_limit/concurrency_limiter.py +7 -1
- jettask/utils/stream_backlog.py +1 -1
- jettask/webui/__init__.py +0 -1
- jettask/webui/api/__init__.py +4 -4
- jettask/webui/api/alerts.py +806 -71
- jettask/webui/api/example_refactored.py +400 -0
- jettask/webui/api/namespaces.py +390 -45
- jettask/webui/api/overview.py +300 -54
- jettask/webui/api/queues.py +971 -267
- jettask/webui/api/scheduled.py +1249 -56
- jettask/webui/api/settings.py +129 -7
- jettask/webui/api/workers.py +442 -0
- jettask/webui/app.py +46 -2329
- jettask/webui/middleware/__init__.py +6 -0
- jettask/webui/middleware/namespace_middleware.py +135 -0
- jettask/webui/services/__init__.py +146 -0
- jettask/webui/services/heartbeat_service.py +251 -0
- jettask/webui/services/overview_service.py +60 -51
- jettask/webui/services/queue_monitor_service.py +426 -0
- jettask/webui/services/redis_monitor_service.py +87 -0
- jettask/webui/services/settings_service.py +174 -111
- jettask/webui/services/task_monitor_service.py +222 -0
- jettask/webui/services/timeline_pg_service.py +452 -0
- jettask/webui/services/timeline_service.py +189 -0
- jettask/webui/services/worker_monitor_service.py +467 -0
- jettask/webui/utils/__init__.py +11 -0
- jettask/webui/utils/time_utils.py +122 -0
- jettask/worker/lifecycle.py +8 -2
- {jettask-0.2.20.dist-info → jettask-0.2.24.dist-info}/METADATA +1 -1
- jettask-0.2.24.dist-info/RECORD +142 -0
- jettask/executor/executor.py +0 -338
- jettask/persistence/backlog_monitor.py +0 -567
- jettask/persistence/base.py +0 -2334
- jettask/persistence/db_manager.py +0 -516
- jettask/persistence/maintenance.py +0 -81
- jettask/persistence/message_consumer.py +0 -259
- jettask/persistence/models.py +0 -49
- jettask/persistence/offline_recovery.py +0 -196
- jettask/persistence/queue_discovery.py +0 -215
- jettask/persistence/task_persistence.py +0 -218
- jettask/persistence/task_updater.py +0 -583
- jettask/scheduler/add_execution_count.sql +0 -11
- jettask/scheduler/add_priority_field.sql +0 -26
- jettask/scheduler/add_scheduler_id.sql +0 -25
- jettask/scheduler/add_scheduler_id_index.sql +0 -10
- jettask/scheduler/make_scheduler_id_required.sql +0 -28
- jettask/scheduler/migrate_interval_seconds.sql +0 -9
- jettask/scheduler/performance_optimization.sql +0 -45
- jettask/scheduler/run_scheduler.py +0 -186
- jettask/scheduler/schema.sql +0 -84
- jettask/task/task_executor.py +0 -318
- jettask/webui/api/analytics.py +0 -323
- jettask/webui/config.py +0 -90
- jettask/webui/models/__init__.py +0 -3
- jettask/webui/models/namespace.py +0 -63
- jettask/webui/namespace_manager/__init__.py +0 -10
- jettask/webui/namespace_manager/multi.py +0 -593
- jettask/webui/namespace_manager/unified.py +0 -193
- jettask/webui/run.py +0 -46
- jettask-0.2.20.dist-info/RECORD +0 -145
- {jettask-0.2.20.dist-info → jettask-0.2.24.dist-info}/WHEEL +0 -0
- {jettask-0.2.20.dist-info → jettask-0.2.24.dist-info}/entry_points.txt +0 -0
- {jettask-0.2.20.dist-info → jettask-0.2.24.dist-info}/licenses/LICENSE +0 -0
- {jettask-0.2.20.dist-info → jettask-0.2.24.dist-info}/top_level.txt +0 -0
@@ -1,193 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
统一的数据消费者管理器
|
3
|
-
自动识别单命名空间和多命名空间模式
|
4
|
-
"""
|
5
|
-
import asyncio
|
6
|
-
import logging
|
7
|
-
import multiprocessing
|
8
|
-
from typing import Dict, Optional, Set
|
9
|
-
from jettask.core.unified_manager_base import UnifiedManagerBase
|
10
|
-
from .multi import NamespaceConsumerProcess
|
11
|
-
|
12
|
-
logger = logging.getLogger(__name__)
|
13
|
-
|
14
|
-
|
15
|
-
class UnifiedConsumerManager(UnifiedManagerBase):
|
16
|
-
"""
|
17
|
-
统一的消费者管理器
|
18
|
-
继承自 UnifiedManagerBase,实现消费者特定的逻辑
|
19
|
-
"""
|
20
|
-
|
21
|
-
def __init__(self,
|
22
|
-
task_center_url: str,
|
23
|
-
check_interval: int = 30,
|
24
|
-
debug: bool = False):
|
25
|
-
"""
|
26
|
-
初始化消费者管理器
|
27
|
-
|
28
|
-
Args:
|
29
|
-
task_center_url: 任务中心URL
|
30
|
-
check_interval: 命名空间检测间隔(秒)
|
31
|
-
debug: 是否启用调试模式
|
32
|
-
"""
|
33
|
-
super().__init__(task_center_url, check_interval, debug)
|
34
|
-
|
35
|
-
# 消费者进程管理
|
36
|
-
self.consumer_processes: Dict[str, NamespaceConsumerProcess] = {}
|
37
|
-
self.known_namespaces: Set[str] = set()
|
38
|
-
|
39
|
-
@property
|
40
|
-
def processes(self):
|
41
|
-
"""提供对外的进程访问接口"""
|
42
|
-
return self.consumer_processes
|
43
|
-
|
44
|
-
async def run_single_namespace(self, namespace_name: str):
|
45
|
-
"""
|
46
|
-
运行单命名空间模式
|
47
|
-
|
48
|
-
Args:
|
49
|
-
namespace_name: 命名空间名称
|
50
|
-
"""
|
51
|
-
logger.info(f"启动单命名空间消费者: {namespace_name}")
|
52
|
-
|
53
|
-
# 获取命名空间配置
|
54
|
-
namespaces = await self.fetch_namespaces_info({namespace_name})
|
55
|
-
|
56
|
-
if not namespaces:
|
57
|
-
logger.error(f"未找到命名空间配置: {namespace_name}")
|
58
|
-
return
|
59
|
-
|
60
|
-
ns_info = namespaces[0]
|
61
|
-
|
62
|
-
# 创建并启动消费进程
|
63
|
-
consumer = NamespaceConsumerProcess(ns_info)
|
64
|
-
consumer.start()
|
65
|
-
self.consumer_processes[namespace_name] = consumer
|
66
|
-
|
67
|
-
try:
|
68
|
-
# 保持运行,定期检查进程状态
|
69
|
-
while self.running:
|
70
|
-
await asyncio.sleep(10)
|
71
|
-
|
72
|
-
# 检查进程是否存活
|
73
|
-
if not consumer.is_alive():
|
74
|
-
logger.warning(f"命名空间 {namespace_name} 的消费进程已停止,尝试重启")
|
75
|
-
consumer.start()
|
76
|
-
except asyncio.CancelledError:
|
77
|
-
logger.info("收到取消信号")
|
78
|
-
|
79
|
-
async def run_multi_namespace(self, namespace_names: Optional[Set[str]]):
|
80
|
-
"""
|
81
|
-
运行多命名空间模式
|
82
|
-
|
83
|
-
Args:
|
84
|
-
namespace_names: 目标命名空间集合,None表示所有命名空间
|
85
|
-
"""
|
86
|
-
logger.info("启动多命名空间消费者管理")
|
87
|
-
|
88
|
-
# 获取初始命名空间配置
|
89
|
-
namespaces = await self.fetch_namespaces_info(namespace_names)
|
90
|
-
|
91
|
-
# 启动每个命名空间的消费者
|
92
|
-
for ns_info in namespaces:
|
93
|
-
try:
|
94
|
-
self._start_namespace_consumer(ns_info)
|
95
|
-
self.known_namespaces.add(ns_info['name'])
|
96
|
-
except Exception as e:
|
97
|
-
logger.error(f"启动命名空间 {ns_info['name']} 的消费者失败: {e}")
|
98
|
-
|
99
|
-
# 创建并发任务
|
100
|
-
try:
|
101
|
-
health_check_task = asyncio.create_task(self._health_check_loop())
|
102
|
-
namespace_check_task = asyncio.create_task(self._namespace_check_loop())
|
103
|
-
|
104
|
-
# 等待任一任务完成或出错
|
105
|
-
done, pending = await asyncio.wait(
|
106
|
-
[health_check_task, namespace_check_task],
|
107
|
-
return_when=asyncio.FIRST_EXCEPTION
|
108
|
-
)
|
109
|
-
|
110
|
-
# 取消所有未完成的任务
|
111
|
-
for task in pending:
|
112
|
-
task.cancel()
|
113
|
-
|
114
|
-
except asyncio.CancelledError:
|
115
|
-
logger.info("收到取消信号")
|
116
|
-
|
117
|
-
def _start_namespace_consumer(self, namespace_info: dict):
|
118
|
-
"""启动单个命名空间的消费者"""
|
119
|
-
name = namespace_info['name']
|
120
|
-
|
121
|
-
# 如果已存在,先停止
|
122
|
-
if name in self.consumer_processes:
|
123
|
-
self.consumer_processes[name].stop()
|
124
|
-
|
125
|
-
# 创建并启动新进程
|
126
|
-
consumer = NamespaceConsumerProcess(namespace_info)
|
127
|
-
consumer.start()
|
128
|
-
self.consumer_processes[name] = consumer
|
129
|
-
logger.info(f"启动命名空间 {name} 的消费进程")
|
130
|
-
|
131
|
-
async def _health_check_loop(self):
|
132
|
-
"""健康检查循环"""
|
133
|
-
while self.running:
|
134
|
-
try:
|
135
|
-
await asyncio.sleep(30) # 每30秒检查一次
|
136
|
-
|
137
|
-
# 检查所有消费进程的健康状态
|
138
|
-
for name, consumer in list(self.consumer_processes.items()):
|
139
|
-
if not consumer.is_alive():
|
140
|
-
logger.warning(f"命名空间 {name} 的消费进程已停止,尝试重启")
|
141
|
-
|
142
|
-
# 重新获取配置并重启
|
143
|
-
namespaces = await self.fetch_namespaces_info({name})
|
144
|
-
if namespaces:
|
145
|
-
self._start_namespace_consumer(namespaces[0])
|
146
|
-
else:
|
147
|
-
logger.error(f"无法获取命名空间 {name} 的配置")
|
148
|
-
|
149
|
-
except Exception as e:
|
150
|
-
logger.error(f"健康检查错误: {e}")
|
151
|
-
|
152
|
-
async def _namespace_check_loop(self):
|
153
|
-
"""命名空间检测循环(动态添加/移除)"""
|
154
|
-
while self.running:
|
155
|
-
try:
|
156
|
-
await asyncio.sleep(self.check_interval)
|
157
|
-
|
158
|
-
# 获取当前所有命名空间
|
159
|
-
current_namespaces = await self.fetch_namespaces_info()
|
160
|
-
current_names = {ns['name'] for ns in current_namespaces}
|
161
|
-
|
162
|
-
# 检测新增的命名空间
|
163
|
-
new_names = current_names - self.known_namespaces
|
164
|
-
for name in new_names:
|
165
|
-
logger.info(f"检测到新命名空间: {name}")
|
166
|
-
ns_info = next(ns for ns in current_namespaces if ns['name'] == name)
|
167
|
-
self._start_namespace_consumer(ns_info)
|
168
|
-
self.known_namespaces.add(name)
|
169
|
-
|
170
|
-
# 检测删除的命名空间
|
171
|
-
removed_names = self.known_namespaces - current_names
|
172
|
-
for name in removed_names:
|
173
|
-
logger.info(f"检测到命名空间已删除: {name}")
|
174
|
-
if name in self.consumer_processes:
|
175
|
-
self.consumer_processes[name].stop()
|
176
|
-
del self.consumer_processes[name]
|
177
|
-
self.known_namespaces.discard(name)
|
178
|
-
|
179
|
-
except Exception as e:
|
180
|
-
logger.error(f"命名空间检测错误: {e}")
|
181
|
-
|
182
|
-
async def cleanup(self):
|
183
|
-
"""清理资源"""
|
184
|
-
logger.info("停止所有消费进程")
|
185
|
-
|
186
|
-
for name, consumer in self.consumer_processes.items():
|
187
|
-
try:
|
188
|
-
consumer.stop()
|
189
|
-
logger.info(f"停止命名空间 {name} 的消费进程")
|
190
|
-
except Exception as e:
|
191
|
-
logger.error(f"停止命名空间 {name} 的消费进程失败: {e}")
|
192
|
-
|
193
|
-
self.consumer_processes.clear()
|
jettask/webui/run.py
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
"""
|
3
|
-
Jettask WebUI Runner
|
4
|
-
|
5
|
-
Usage:
|
6
|
-
python -m jettask.webui.run [--host HOST] [--port PORT] [--redis REDIS_URL]
|
7
|
-
"""
|
8
|
-
|
9
|
-
import argparse
|
10
|
-
import sys
|
11
|
-
import os
|
12
|
-
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
13
|
-
|
14
|
-
from jettask.webui.app import app, monitor
|
15
|
-
import uvicorn
|
16
|
-
|
17
|
-
def main():
|
18
|
-
parser = argparse.ArgumentParser(description="Jettask Monitor WebUI")
|
19
|
-
parser.add_argument("--host", default="0.0.0.0", help="Host to bind to (default: 0.0.0.0)")
|
20
|
-
parser.add_argument("--port", type=int, default=8000, help="Port to bind to (default: 8000)")
|
21
|
-
parser.add_argument("--redis", default="redis://localhost:6379", help="Redis URL (default: redis://localhost:6379)")
|
22
|
-
parser.add_argument("--prefix", default="jettask", help="Redis key prefix (default: jettask)")
|
23
|
-
|
24
|
-
args = parser.parse_args()
|
25
|
-
|
26
|
-
# 更新Redis连接
|
27
|
-
monitor.redis_url = args.redis
|
28
|
-
monitor.redis_prefix = args.prefix
|
29
|
-
|
30
|
-
print(f"Starting Jettask Monitor WebUI...")
|
31
|
-
print(f"Redis URL: {args.redis}")
|
32
|
-
print(f"Redis Prefix: {args.prefix}")
|
33
|
-
print(f"Server: http://{args.host}:{args.port}")
|
34
|
-
print(f"Visit http://localhost:{args.port} in your browser")
|
35
|
-
|
36
|
-
# 运行服务器
|
37
|
-
uvicorn.run(
|
38
|
-
"jettask.webui.app:app",
|
39
|
-
host=args.host,
|
40
|
-
port=args.port,
|
41
|
-
log_level="info",
|
42
|
-
reload=True
|
43
|
-
)
|
44
|
-
|
45
|
-
if __name__ == "__main__":
|
46
|
-
main()
|
jettask-0.2.20.dist-info/RECORD
DELETED
@@ -1,145 +0,0 @@
|
|
1
|
-
jettask/__init__.py,sha256=cqedpoKBAUBpyComnKOJYNSbnqdry3pijO1sdPPXyH4,1885
|
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.20.dist-info/licenses/LICENSE,sha256=sKR8OPWvnqxzcHAmnaVSANpRpeM0Z52PNLCB0ZlFN6c,1062
|
141
|
-
jettask-0.2.20.dist-info/METADATA,sha256=oE6vSBPtib8sl2k9JROdndV7Yk0uFsexPKsYyiGD3gA,1949
|
142
|
-
jettask-0.2.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
143
|
-
jettask-0.2.20.dist-info/entry_points.txt,sha256=9-8eTLJPgzpBgeGC8WHdMYtldZxHAXFspMeqArVUdew,148
|
144
|
-
jettask-0.2.20.dist-info/top_level.txt,sha256=uymyRUF87-OsSurk5NhpeTW0jy3Wltnn91Zoa6jmAaw,8
|
145
|
-
jettask-0.2.20.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|