Skip to content

Commit acb41f2

Browse files
committed
Add scheduler to executor
Add scheduler to executor
1 parent 49a5f2b commit acb41f2

File tree

4 files changed

+36
-3
lines changed

4 files changed

+36
-3
lines changed

.idea/workspace.xml

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

je_auto_control/utils/executor/action_executor.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import builtins
22
import types
33
from inspect import getmembers, isbuiltin
4-
from typing import Any, Dict, List
4+
from typing import Any, Dict, List, Union
55

66
from je_auto_control.utils.exception.exception_tags import action_is_null_error, add_command_exception, \
77
executor_list_error
@@ -18,6 +18,7 @@
1818
from je_auto_control.utils.logging.loggin_instance import auto_control_logger
1919
from je_auto_control.utils.package_manager.package_manager_class import package_manager
2020
from je_auto_control.utils.project.create_project_structure import create_project_dir
21+
from je_auto_control.utils.scheduler.extend_apscheduler import scheduler_manager
2122
from je_auto_control.utils.shell_process.shell_exec import ShellManager
2223
from je_auto_control.utils.start_exe.start_another_process import start_exe
2324
from je_auto_control.utils.test_record.record_test_class import record_action_to_list, test_record_instance
@@ -156,6 +157,16 @@ def execute_files(self, execute_files_list: list) -> List[Dict[str, str]]:
156157
execute_detail_list.append(self.execute_action(read_action_json(file)))
157158
return execute_detail_list
158159

160+
def scheduler_event_trigger(
161+
self, function: str, id: str = None, args: Union[list, tuple] = None,
162+
kwargs: dict = None, scheduler_type: str = "nonblocking", wait_type: str = "secondly",
163+
wait_value: int = 1, **trigger_args: Any) -> None:
164+
if scheduler_type == "nonblocking":
165+
scheduler_event = scheduler_manager.nonblocking_scheduler_event_dict.get(wait_type)
166+
else:
167+
scheduler_event = scheduler_manager.blocking_scheduler_event_dict.get(wait_type)
168+
scheduler_event(self.event_dict.get(function), id, args, kwargs, wait_value, **trigger_args)
169+
159170

160171
executor = Executor()
161172
package_manager.executor = executor

je_auto_control/utils/scheduler/extend_apscheduler.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ class SchedulerManager(object):
1212
def __init__(self):
1313
self._blocking_schedulers: BlockingScheduler = BlockingScheduler()
1414
self._background_schedulers: BackgroundScheduler = BackgroundScheduler()
15+
self.blocking_scheduler_event_dict = {
16+
"secondly": self.add_interval_blocking_secondly,
17+
"minutely": self.add_interval_blocking_minutely,
18+
"hourly": self.add_interval_blocking_hourly,
19+
"daily": self.add_interval_blocking_daily,
20+
"weekly": self.add_interval_blocking_weekly,
21+
}
22+
self.nonblocking_scheduler_event_dict = {
23+
"secondly": self.add_interval_nonblocking_secondly,
24+
"minutely": self.add_interval_nonblocking_minutely,
25+
"hourly": self.add_interval_nonblocking_hourly,
26+
"daily": self.add_interval_nonblocking_daily,
27+
"weekly": self.add_interval_nonblocking_weekly,
28+
}
1529

1630
def add_blocking_job(
1731
self, func: Callable, trigger: str = None, args: Union[list, tuple] = None,
@@ -196,3 +210,6 @@ def shutdown_blocking_scheduler(self, wait: bool = False) -> None:
196210

197211
def shutdown_nonblocking_scheduler(self, wait: bool = False) -> None:
198212
self._background_schedulers.shutdown(wait=wait)
213+
214+
215+
scheduler_manager = SchedulerManager()

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
66

77
[project]
88
name = "je_auto_control_dev"
9-
version = "0.0.87"
9+
version = "0.0.88"
1010
authors = [
1111
{ name = "JE-Chen", email = "jechenmailman@gmail.com" },
1212
]

0 commit comments

Comments
 (0)