Closed BhxslDean closed 1 year ago
需要把xxl_handler传入executor启动的参数里面。如果还不生效可以发下案例代码,理论上不存在这个问题的
unner = PyxxlRunner(config, handler=xxl_handler)
有一种可能是你其他文件程序启动时没有被import ,需要 import 一下不然代码不会跑过去
是没有导入的问题,但是所有的的handler都需要导入,看起来不太优雅,代码如下,在main里定义了一个任务,在other_job里也定义了一个,需要这样才可以两个都生效
··· def when_ready(server):
from other_job import xxl_handler
from main import xxl_handler
atexit.unregister(_exit_function)
config = ExecutorConfig(
xxl_admin_baseurl="http://localhost:8080/xxl-job-admin/api/",
executor_app_name="xxl-job-executor-sample",
executor_host="127.0.0.1",
debug=True,
access_token="Lpoms_xxljob_default_token",
executor_port=9988
)
runner = PyxxlRunner(config, handler=xxl_handler)
server.pyxxl_runner = runner
runner.run_with_daemon()
···
不导入无法运行装饰器里面的代码,这个是Python的正常逻辑,都是这样的
嗯嗯,这个是我疏忽了...只是觉得也许可以和flask或者fastapi的路由管理这样,通过类似 include_router 方法将所有task收集到执行器服务里或者在 PyxxlRunner 里直接就可以传 List[JobHandler],目前我看是只能传一个的
感谢回复昂
在一个文件里定义了xxl_handler = JobHandler(),然后其他文件引入发现其他文件注册的任务并不生效,看起来没有像路由那样的 include方法