feat: 新增技能扩展N16一章相关示例源码

This commit is contained in:
100gle
2023-03-09 09:44:25 +08:00
parent e963474669
commit ed9a0be0bd
5 changed files with 124 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
from rocketry import Rocketry
app = Rocketry(execution="main")
times = 0
@app.task('every 1 second')
def echo():
global times
times += 1
print(f"Running {times} times...")
if __name__ == '__main__':
app.run()

View File

@@ -0,0 +1,25 @@
from rocketry import Rocketry
app = Rocketry()
def get_params():
yield {"name": "100gle"}
yield {}
@app.task()
def greet(name=None):
msg = name or "world"
print(f"Hello, {msg}!")
@app.task('every 3 second', execution="thread")
def do_callback():
for params in get_params():
task = app.session["greet"]
task.run(**params)
if __name__ == '__main__':
app.run()

View File

@@ -0,0 +1,20 @@
from rocketry import Rocketry
from rocketry.args import Return
from rocketry.conds import after_success
app = Rocketry(execution="async")
@app.task('every 3 second')
def success():
return True
@app.task(after_success(success))
def handle(is_success=Return(success)):
status = "Done" if is_success else "Running"
print(f"Task status is: {status}")
if __name__ == '__main__':
app.run()

View File

@@ -0,0 +1,21 @@
from redbird.repos import CSVFileRepo
from rocketry import Rocketry
from rocketry.log import LogRecord
app = Rocketry(
execution="async",
logger_repo=CSVFileRepo(
filename="task_log.csv",
model=LogRecord,
),
config={
'task_pre_exist': 'raise',
'force_status_from_logs': True,
'silence_task_prerun': False,
'silence_task_logging': False,
'silence_cond_check': False,
'max_process_count': 5,
'restarting': 'replace',
'cycle_sleep': 0.1,
},
)

View File

@@ -0,0 +1,43 @@
from rocketry import Grouper, Rocketry
from rocketry.args import Arg
app = Rocketry()
# -----------
# Daily Tasks
# -----------
daily_group = Grouper()
@daily_group.param("daily_signal")
def signal():
return "Bang!"
@daily_group.task("daily")
def postit(signal=Arg("daily_signal")):
...
# ------------
# Weekly Tasks
# ------------
weekly_group = Grouper()
@weekly_group.param("weekly_signal")
def signal():
return "weekly"
@weekly_group.task("weekly")
def backup(signal=Arg("weekly_signal")):
...
app.include_grouper(daily_group)
app.include_grouper(weekly_group)
if __name__ == '__main__':
app.run()