fcfangcc / pyxxl

XXL-JOB的Python执行器实现,可以方便的将Python方法注册到XXL-JOB的调度中心上进行管理
https://fcfangcc.github.io/pyxxl/
GNU General Public License v3.0
60 stars 16 forks source link

使用示例demo出现的问题 #41

Closed zzzjw666 closed 8 months ago

zzzjw666 commented 9 months ago

20240218-173305 请问这是什么问题,下面是我的一些相关配置 Snipaste_2024-02-18_17-36-54

fcfangcc commented 9 months ago

看起来是admin端的接口不对,你修改下日志登记再输出日志我看看

ExecutorConfig(
    ...
    debug=True,
)
zzzjw666 commented 9 months ago

image 加了debug=True,还是出现这个问题,是我的ExecutorConfig类里面的参数值有问题吗,下面是日志输出 image

fcfangcc commented 9 months ago

命令行试一下返回什么

curl -X POST http://你的地址/xxl-job-admin/api/registry

@zzzjw666 提供你在用的xxl-admin的版本和pyxxl的版本

zzzjw666 commented 9 months ago

xxl-admin版本:2.4.0,pyxxl版本:0.3.4 我请求了一下我的地址,返回结果如下 image 或者作者您可以留个qq等联系方式吗,好方便跟您沟通~~

fcfangcc commented 9 months ago

你是不是xxl-job打开了token验证。需要添加access_token参数 参考配置

然后你代码里面地址是http 但是postman是https,你检查下吧。应该就是这两个问题引起

zzzjw666 commented 9 months ago

我后面加了access_token了,发现又出现如下问题 image 然后我在代码的demo那里也加了access_token,然后运行,也是出现这个问题(跟之前的那个问题一模一样) image

fcfangcc commented 9 months ago

@zzzjw666 我感觉是你这里配置了http强制跳转到https?你试下用https呢

zzzjw666 commented 9 months ago

demo改为https就没这个问题出现了 image

但是现在这个demo是注册执行器,那么我怎么通过执行器定时去执行我的代码呢,有没有相应的demo教程,我看了一下pyxxl这个库只是单纯去注册执行器,但是我原本是已经有一个执行器了,是java启动的执行器,我可不可以通过pyxxl这个库去将我原有已经启动的java那边的执行器去绑定我现在的python代码来实现定时执行呢。我可能对xxl-job还不是很能理解,希望作者能够给我耐心讲解,谢谢您呢~~

fcfangcc commented 9 months ago

这样你已经注册上了

你把executor_app_name名字和java执行器的名字改成一样,然后函数名(列如下面是xxxxx)也一样就行了

剩下的都是在xxl-job界面里面配置的,xxl-job就分发任务给python,会调用到python的对应的函数里面的,自己试下吧,这个是属于xxl-job的内容了

@app.register(name="xxxxx")
def test_task3():
    return "成功3"
zzzjw666 commented 9 months ago

但是这样的话,这相当于又起了一个默认端口为9999的服务了,我java那边的执行器已经起了服务了,我能不能在不启动这个服务的情况下去连接java执行器那边的服务

fcfangcc commented 9 months ago

但是这样的话,这相当于又起了一个默认端口为9999的服务了,我java那边的执行器已经起了服务了,我能不能在不启动这个服务的情况下去连接java执行器那边的服务

这个和java执行就是没有关系的,独立的。为何要连java的执行器呢?

如果你不想java执行,把java执行器下了只保留python执行器就行了

zzzjw666 commented 9 months ago

作者您好,我看了一下pyxxl这个库适配的XXL-JOB版本为2.3.0,我现在XXL-JOB的版本是2.4.0,请问pyxxl现在兼容我这个版本吗 image

zzzjw666 commented 9 months ago

我的xxl-admin上的配置是如下: image 我demo里面的配置如下: image

我的job handler名字明明都是一样的,为啥在调度日志里面查看会说这个job handler没找到 image

fcfangcc commented 9 months ago

我用xxl-job2.4如果不存在这里报错是 msg:handler xxxxxx not found.

为什么你那边错误信息是 msg:handler [xxxxxx] not found.

你是不是改动源码过了?

启动有如下日志提示有哪些handler

2024-02-23 16:47:33.174 [MainThread] [NotInTask] INFO /pyxxl/main.py(_cleanup_ctx:107) - register with handlers ['<demoJobHandler is_async:True>', '<xxxxx is_async:True>', '<sync_func is_async:False>']

接收到请求应该有打印这个日志,你看看是什么

2024-02-23 16:59:38.047 [MainThread] [NotInTask] INFO server.py(run:54) - Get task request. jobId=2 logId=15 [RunData(jobId=2, logId=15, executorHandler='xxxxxx', executorBlockStrategy='SERIAL_EXECUTION', executorParams='', executorTimeout=0, logDateTime=1708678778032, glueType='BEAN', glueSource='', glueUpdatetime=1708678445000, broadcastIndex=0, broadcastTotal=1)]