orchestrator-core 4.4.0rc2__py3-none-any.whl → 4.4.0rc3__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.
- orchestrator/__init__.py +1 -1
- orchestrator/cli/scheduler.py +6 -11
- orchestrator/schedules/scheduler.py +9 -2
- {orchestrator_core-4.4.0rc2.dist-info → orchestrator_core-4.4.0rc3.dist-info}/METADATA +1 -1
- {orchestrator_core-4.4.0rc2.dist-info → orchestrator_core-4.4.0rc3.dist-info}/RECORD +7 -7
- {orchestrator_core-4.4.0rc2.dist-info → orchestrator_core-4.4.0rc3.dist-info}/WHEEL +0 -0
- {orchestrator_core-4.4.0rc2.dist-info → orchestrator_core-4.4.0rc3.dist-info}/licenses/LICENSE +0 -0
orchestrator/__init__.py
CHANGED
orchestrator/cli/scheduler.py
CHANGED
|
@@ -13,11 +13,13 @@
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
import logging
|
|
16
|
+
import time
|
|
16
17
|
|
|
17
18
|
import typer
|
|
18
|
-
from apscheduler.schedulers.blocking import BlockingScheduler
|
|
19
19
|
|
|
20
|
-
from orchestrator.schedules.scheduler import
|
|
20
|
+
from orchestrator.schedules.scheduler import (
|
|
21
|
+
get_paused_scheduler,
|
|
22
|
+
)
|
|
21
23
|
|
|
22
24
|
log = logging.getLogger(__name__)
|
|
23
25
|
|
|
@@ -27,18 +29,11 @@ app: typer.Typer = typer.Typer()
|
|
|
27
29
|
@app.command()
|
|
28
30
|
def run() -> None:
|
|
29
31
|
"""Start scheduler and loop eternally to keep thread alive."""
|
|
30
|
-
# necessary to add the schedules to the DB since they are added to the BackgroundScheduler
|
|
31
32
|
with get_paused_scheduler() as scheduler:
|
|
32
33
|
scheduler.resume()
|
|
33
|
-
scheduler.pause()
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
try:
|
|
38
|
-
blocking_scheduler.start()
|
|
39
|
-
finally:
|
|
40
|
-
blocking_scheduler.shutdown()
|
|
41
|
-
scheduler_dispose_db_connections()
|
|
35
|
+
while True:
|
|
36
|
+
time.sleep(1)
|
|
42
37
|
|
|
43
38
|
|
|
44
39
|
@app.command()
|
|
@@ -16,6 +16,7 @@ from contextlib import contextmanager
|
|
|
16
16
|
from datetime import datetime
|
|
17
17
|
from typing import Any, Generator
|
|
18
18
|
|
|
19
|
+
from apscheduler.executors.pool import ThreadPoolExecutor
|
|
19
20
|
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
|
|
20
21
|
from apscheduler.schedulers.background import BackgroundScheduler
|
|
21
22
|
from more_itertools import partition
|
|
@@ -29,8 +30,14 @@ from orchestrator.settings import app_settings
|
|
|
29
30
|
from orchestrator.utils.helpers import camel_to_snake, to_camel
|
|
30
31
|
|
|
31
32
|
jobstores = {"default": SQLAlchemyJobStore(url=str(app_settings.DATABASE_URI))}
|
|
33
|
+
executors = {
|
|
34
|
+
"default": ThreadPoolExecutor(1),
|
|
35
|
+
}
|
|
36
|
+
job_defaults = {
|
|
37
|
+
"coalesce": True,
|
|
38
|
+
}
|
|
32
39
|
|
|
33
|
-
scheduler = BackgroundScheduler(jobstores=jobstores)
|
|
40
|
+
scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults)
|
|
34
41
|
|
|
35
42
|
|
|
36
43
|
def scheduler_dispose_db_connections() -> None:
|
|
@@ -44,7 +51,7 @@ def get_paused_scheduler() -> Generator[BackgroundScheduler, Any, None]:
|
|
|
44
51
|
try:
|
|
45
52
|
yield scheduler
|
|
46
53
|
finally:
|
|
47
|
-
scheduler.shutdown(
|
|
54
|
+
scheduler.shutdown()
|
|
48
55
|
scheduler_dispose_db_connections()
|
|
49
56
|
|
|
50
57
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
orchestrator/__init__.py,sha256=
|
|
1
|
+
orchestrator/__init__.py,sha256=4-pAbOsr1gG9e7wEsiJqmS0b4qyvGlnxbcG8JjrN-c8,1066
|
|
2
2
|
orchestrator/app.py,sha256=7UrXKjBKNSEaSSXAd5ww_RdMFhFqE4yvfj8faS2MzAA,12089
|
|
3
3
|
orchestrator/exception_handlers.py,sha256=UsW3dw8q0QQlNLcV359bIotah8DYjMsj2Ts1LfX4ClY,1268
|
|
4
4
|
orchestrator/log_config.py,sha256=1tPRX5q65e57a6a_zEii_PFK8SzWT0mnA5w2sKg4hh8,1853
|
|
@@ -36,7 +36,7 @@ orchestrator/cli/migrate_domain_models.py,sha256=WRXy_1OnziQwpsCFZXvjB30nDJtjj0i
|
|
|
36
36
|
orchestrator/cli/migrate_tasks.py,sha256=bju8XColjSZD0v3rS4kl-24dLr8En_H4-6enBmqd494,7255
|
|
37
37
|
orchestrator/cli/migrate_workflows.py,sha256=nxUpx0vgEIc_8aJrjAyrw3E9Dt8JmaamTts8oiQ4vHY,8923
|
|
38
38
|
orchestrator/cli/migration_helpers.py,sha256=C5tpkP5WEBr7G9S-1k1hgSI8ili6xd9Z5ygc9notaK0,4110
|
|
39
|
-
orchestrator/cli/scheduler.py,sha256=
|
|
39
|
+
orchestrator/cli/scheduler.py,sha256=2q6xT_XVOodY3e_qzIV98MWNvKvrbFpOJajWesj1fcs,1911
|
|
40
40
|
orchestrator/cli/domain_gen_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
41
|
orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py,sha256=uzpwsaau81hHSxNMOS9-o7kF-9_78R0f_UE0AvWooZQ,6775
|
|
42
42
|
orchestrator/cli/domain_gen_helpers/helpers.py,sha256=tIPxn8ezED_xYZxH7ZAtQLwkDc6RNmLZVxWAoJ3a9lw,4203
|
|
@@ -249,7 +249,7 @@ orchestrator/migrations/versions/schema/2025-07-04_4b58e336d1bf_deprecating_work
|
|
|
249
249
|
orchestrator/migrations/versions/schema/2025-07-28_850dccac3b02_update_description_of_resume_workflows_.py,sha256=R6Qoga83DJ1IL0WYPu0u5u2ZvAmqGlDmUMv_KtJyOhQ,812
|
|
250
250
|
orchestrator/schedules/__init__.py,sha256=Zy0fTOBMGIRFoh5iVFDLF9_PRAFaONYDThGK9EsysWo,981
|
|
251
251
|
orchestrator/schedules/resume_workflows.py,sha256=jRnVRWDy687pQu-gtk80ecwiLSdrvtL15tG3U2zWA6I,891
|
|
252
|
-
orchestrator/schedules/scheduler.py,sha256=
|
|
252
|
+
orchestrator/schedules/scheduler.py,sha256=_Y6TB-GKNJM0Nk7CRLuMnw0djFEBrDm999GOOcBuBeQ,5880
|
|
253
253
|
orchestrator/schedules/scheduling.py,sha256=_mbpHMhijey8Y56ebtJ4wVkrp_kPVRm8hoByzlQF4SE,2821
|
|
254
254
|
orchestrator/schedules/task_vacuum.py,sha256=mxb7fsy1GphRwvUWi_lvwNaj51YAXUdIDlkOJd90AFI,874
|
|
255
255
|
orchestrator/schedules/validate_products.py,sha256=zWFQeVn3F8LP3joExLiKdmHs008pZsO-RolcIXHjFyE,1322
|
|
@@ -319,7 +319,7 @@ orchestrator/workflows/tasks/resume_workflows.py,sha256=T3iobSJjVgiupe0rClD34kUZ
|
|
|
319
319
|
orchestrator/workflows/tasks/validate_product_type.py,sha256=paG-NAY1bdde3Adt8zItkcBKf5Pxw6f5ngGW6an6dYU,3192
|
|
320
320
|
orchestrator/workflows/tasks/validate_products.py,sha256=GZJBoFF-WMphS7ghMs2-gqvV2iL1F0POhk0uSNt93n0,8510
|
|
321
321
|
orchestrator/workflows/translations/en-GB.json,sha256=ST53HxkphFLTMjFHonykDBOZ7-P_KxksktZU3GbxLt0,846
|
|
322
|
-
orchestrator_core-4.4.
|
|
323
|
-
orchestrator_core-4.4.
|
|
324
|
-
orchestrator_core-4.4.
|
|
325
|
-
orchestrator_core-4.4.
|
|
322
|
+
orchestrator_core-4.4.0rc3.dist-info/licenses/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
|
|
323
|
+
orchestrator_core-4.4.0rc3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
324
|
+
orchestrator_core-4.4.0rc3.dist-info/METADATA,sha256=Xu_xQc9lhukT3Gj52AVnPxfBc8Q8Pk77IBbPbMkgBe8,5967
|
|
325
|
+
orchestrator_core-4.4.0rc3.dist-info/RECORD,,
|
|
File without changes
|
{orchestrator_core-4.4.0rc2.dist-info → orchestrator_core-4.4.0rc3.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|