Dragon-GCS / apscheduler-webui

MIT License
6 stars 1 forks source link

使用/new无法注册自己的task #1

Open Fatalerr opened 2 days ago

Fatalerr commented 2 days ago

你好,没有看明白如何使用/new注册自己的task/job。 在浏览器里访问http://localhost:8000/new提示 “Request Error/Response not valid JSON". 哪里有更详细的指引或文档?

另外,我使用web页面上的new job按钮来建立新的task/job也失败了,提示500出错,相应信息如下:

[103117] 2024-10-07 11:27:22 | DEBUG | multipart.multipart:627 Calling on_end with no data INFO: 192.168.1.14:60967 - "POST /job/ HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 406, in run_asgi result = await app( # type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__ await super().__call__(scope, receive, send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__ await self.middleware_stack(scope, receive, send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__ raise exc File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__ await self.app(scope, receive, _send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__ await self.middleware_stack(scope, receive, send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/routing.py", line 735, in app await route.handle(scope, receive, send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle await self.app(scope, receive, send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/routing.py", line 76, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app raise exc File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app await app(scope, receive, sender) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/starlette/routing.py", line 73, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/src/routes/job.py", line 59, in new_job job = scheduler.add_job( ^^^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/apscheduler/schedulers/base.py", line 448, in add_job job = Job(self, **job_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/apscheduler/job.py", line 49, in __init__ self._modify(id=id or uuid4().hex, **kwargs) File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/apscheduler/job.py", line 162, in _modify func = ref_to_obj(func) ^^^^^^^^^^^^^^^^ File "/home/junl/temp/apscheduler-webui/.venv/lib/python3.12/site-packages/apscheduler/util.py", line 267, in ref_to_obj raise ValueError('Invalid reference') ValueError: Invalid reference INFO: 192.168.1.14:60968 - "GET /job/store HTTP/1.1" 200 OK

Dragon-GCS commented 1 day ago

一种是在脚本里通过src.scheduler模块里的scheduler对象注册你的函数,另一种就是通过页面上的New Job按钮添加。根据你提供的错误堆栈,报错应该是由于你填写的脚本字符串解析失败了。填写的字符串会作为func参数传递给scheduler.add_job

FastUI现在没有一个很好的响应机制,所以暂时没办法很好的处理请求报错