open-job / openjob Goto Github PK
View Code? Open in Web Editor NEWDistributed high performance task scheduling framework
Home Page: https://openjob.io
License: Apache License 2.0
Distributed high performance task scheduling framework
Home Page: https://openjob.io
License: Apache License 2.0
System (please complete the following information):
linux
[e.g. linux, macOS, windows]1.13
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
openjob管理后台创建延迟任务,然后更新任务的超时时间,测试结果:任务达到设定的超时时间后,并没有终止掉这个任务,仍在继续执行,最后执行成功了。
To Reproduce
// java code
Expected behavior
排查了下,db中的延迟任务配置跟缓存的不一致,可能是更新任务配置的时候,未处理缓存
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
希望支持commend 命令行方式执行任务,可以使一些任务在Windows或者linux运行
[WARN] [02/21/2024 13:58:26.650] [Openjob-initialize-thread] [akka.remote.RemoteActorRefProvider] Using the 'remote' ActorRefProvider directly, which is a low-level layer. For most use cases, the 'cluster' abstraction on top of remoting is more suitable instead.
[WARN] [02/21/2024 13:58:26.650] [Openjob-initialize-thread] [akka.remote.RemoteActorRefProvider] Akka Cluster not in use - Using Akka Cluster is recommended if you need remote watch and deploy.
[INFO] [02/21/2024 13:58:26.899] [Openjob-initialize-thread] [ArteryTransport(akka://openjob-worker)] Remoting started with transport [Artery tcp]; listening on address [akka://[email protected]:25588] with UID [4844873213332236743]
2024-02-21 13:58:27,055[INFO]io.openjob.worker.init.WorkerActorSystem.init:71Worker actor system started,address=akka://[email protected]:25588
RecoveryCompleted
RecoveryCompleted
2024-02-21 13:58:27,640[INFO]io.openjob.worker.init.WorkerRegister.register:39Register worker success. serverAddress=192.168.1.6 workerAddress=192.168.1.6:25588
2024-02-21 13:58:27,640[INFO]io.openjob.worker.init.WorkerContext.init:36Worker context initialized! appId=1 onlineWorkers=[192.168.1.6:25588]
2024-02-21 13:58:27,646[INFO]io.openjob.worker.OpenjobWorker.lambda$init$0:85Openjob worker initialize complete!
2024-02-21 13:58:27,653[INFO]com.zaxxer.hikari.HikariDataSource.getConnection:110HikariPool-1 - Starting...
2024-02-21 13:58:27,852[INFO]com.zaxxer.hikari.HikariDataSource.getConnection:123HikariPool-1 - Start completed.
2024-02-21 13:58:35,683[ERROR]io.openjob.worker.init.WorkerHeartbeat.doWorkerHeartbeat:102Worker heartbeat fail. serverAddress=192.168.1.6 workerAddress=192.168.1.6:25588 failTimes=1
java.lang.RuntimeException: Must ask fail! path=/user/worker-delay-instance anchor=akka://[email protected]:25520/
at io.openjob.common.util.FutureUtil.mustAsk(FutureUtil.java:46)
at io.openjob.worker.delay.DelayTaskMaster.refresh(DelayTaskMaster.java:53)
at io.openjob.worker.delay.DelayManager.refresh(DelayManager.java:69)
at io.openjob.worker.init.WorkerHeartbeat.refresh(WorkerHeartbeat.java:123)
at io.openjob.worker.init.WorkerHeartbeat.doWorkerHeartbeat(WorkerHeartbeat.java:96)
at io.openjob.worker.init.WorkerHeartbeat.lambda$init$0(WorkerHeartbeat.java:65)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.TimeoutException: Future timed out after [3000 milliseconds]
at scala.concurrent.impl.Promise$DefaultPromise.tryAwait0(Promise.scala:248)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:261)
at scala.concurrent.Await$.$anonfun$result$1(package.scala:201)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:62)
at scala.concurrent.Await$.result(package.scala:124)
at scala.concurrent.Await.result(package.scala)
at io.openjob.common.util.FutureUtil.mustAsk(FutureUtil.java:38)
... 13 common frames omitted
2024-02-21 13:58:40,652[ERROR]io.openjob.worker.init.WorkerHeartbeat.doWorkerHeartbeat:102Worker heartbeat fail. serverAddress=192.168.1.6 workerAddress=192.168.1.6:25588 failTimes=2
java.lang.RuntimeException: Must ask fail! path=/user/worker-delay-instance anchor=akka://[email protected]:25520/
at io.openjob.common.util.FutureUtil.mustAsk(FutureUtil.java:46)
at io.openjob.worker.delay.DelayTaskMaster.refresh(DelayTaskMaster.java:53)
at io.openjob.worker.delay.DelayManager.refresh(DelayManager.java:69)
at io.openjob.worker.init.WorkerHeartbeat.refresh(WorkerHeartbeat.java:123)
at io.openjob.worker.init.WorkerHeartbeat.doWorkerHeartbeat(WorkerHeartbeat.java:96)
at io.openjob.worker.init.WorkerHeartbeat.lambda$init$0(WorkerHeartbeat.java:65)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.TimeoutException: Future timed out after [3000 milliseconds]
at scala.concurrent.impl.Promise$DefaultPromise.tryAwait0(Promise.scala:248)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:261)
at scala.concurrent.Await$.$anonfun$result$1(package.scala:201)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:62)
at scala.concurrent.Await$.result(package.scala:124)
at scala.concurrent.Await.result(package.scala)
at io.openjob.common.util.FutureUtil.mustAsk(FutureUtil.java:38)
... 13 common frames omitted
2024-02-21 13:58:40,652[INFO]io.openjob.worker.init.WorkerHeartbeat.doWorkerHeartbeat:105Begin to refresh server! server=192.168.1.6 port=25520 failTimes=2
2024-02-21 13:58:40,677[INFO]io.openjob.worker.init.WorkerConfig.refreshServer:137Refresh server success! server=192.168.1.6 port=25520
System (please complete the following information):
linux
[e.g. linux, macOS, windows]1.13
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
A clear and concise description of what the bug is.
To Reproduce
// java code
Expected behavior
A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
非常希望可以提供一个便捷集成server的starter 类似于 spring-boot-admin-starter-server 引入即可形成server服务
更方便更灵活的集成方式 也便于扩展和自定义处理一些项目中的东西
例如: 改造成微服务 需要对接 注册中心 配置中心 普罗米修斯监控 k8s 等一些
这是我整合powerjob的过程和遇到的一些问题还有解决方案 希望openjob也可以提供一个便于集成的依赖包
https://gitee.com/KFCFans/PowerJob/issues/I6DN40
https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/359
System (please complete the following information):
linux
[e.g. linux, macOS, windows]1.13
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
A clear and concise description of what the bug is.
To Reproduce
// java code
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
System (please complete the following information):
linux
[e.g. linux, macOS, windows]1.13
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
A clear and concise description of what the bug is.
To Reproduce
// java code
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
后续任务执行通知有支持钉钉机器人的计划吗?
System (please complete the following information):
linux
[e.g. linux, macOS, windows]17
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
springboot 3.1.4 集成openjob,无工作节点,server报错
目前发现是未正确读取yml文件造成worker没有初始化
To Reproduce
application.yml 配置文件
spring:
openjob:
enable: true # 是否开启
server:
address: http://192.168.8.133:8080 # Server 集群地址
worker:
heartbeat-interval: 5 # 心跳时间,单位秒
host: 192.168.8.133 # Worker host
port: 25588 # Worker prot
app-name: openjob # 应用名称,必须配置
actor:
heartbeat-num: 1 # 心跳 actor 最大数量
task-master-num: 32 # 任务 Master actor 最大数量
task-container-num: 32 # 任务 Container actor 最大数量
persistent-num: 2 # 持久化 actor 最大数量
delay-master-num: 1 # 延时任务 Master actor 最大数量
delay:
enable: false # 是否开启延时任务
pull-size: 8 # 延时任务拉取数量
pull-sleep: 500L # 延时任务拉取空闲休眠时间,单位毫秒
pull-step: 500L # 延时任务主题空闲休眠步长时间,单位毫秒
timeout: 3000L # 延时任务发送超时时间,单位毫秒
Expected behavior
Additional context
我看了一眼,发现和powerjob设计也很像啊。也有工作流,不过那个还支持DAG。xxl-job下一版本也是准备加入DAG。最好是加上powerjob对比吧。其它几个对比感觉已经意义不大,都落伍了。
集成Spring体系的MircoMeter,使得OpenJob的运行时Metrics可以被监控起来。Powerjob还没实现
能否提供与powerJob的对比?
没有搜索到具体的python示例,谢谢作者们
加入监控器和管理中心所在机器的CPU、内存、硬盘、系统信息等监控、以及在对应时间段的任务执行情况的运行监控图
System (please complete the following information):
linux
[e.g. linux, macOS, windows]1.13
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
A clear and concise description of what the bug is.
To Reproduce
// java code
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
System (please complete the following information):
linux
[e.g. linux, macOS, windows]1.13
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
复现场景:
本地A服务的workder节点注册后,后台注册节点显示的A服务(正常),然后关掉A服务,B服务使用A服务的节点地址,后台注册节点仍然显示的是A服务,这样后续在执行任务的时候,会找不到服务的任务。
解决方式:
// java code
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
当我把openjob-server 部署到云服务器上,同时配置akka {AKKA_REMOTE_HOSTNAME} 为 公网ip地址,{AKKA_BIND_HOSTNAME}为当前服务器真实ip , 我本地连接却报错 Openjob worker initialize failed! java.lang.RuntimeException: Must ask fail! path=/user/worker anchor=akka://openjob-server@公网ip地址:25520/的异常
客户端是SpringBoot+Logback,当logger.info()打印一个比较长的文本日志时会报错如下,同时服务端任务日志中为空,未接收到日志内容。
[ERROR] [07/05/2023 18:35:01.024] [openjob-worker-akka.remote.default-remote-dispatcher-8] [Encoder(akka://openjob-worker)] Failed to serialize oversized message [ActorSelectionMessage(io.openjob.common.request.WorkerJobInstanceTaskLogRequest)].
akka.remote.OversizedPayloadException: Discarding oversized payload sent to Some(Actor[akka://[email protected]:25520/]): max allowed size 262144 bytes. Message type [ActorSelectionMessage(io.openjob.common.request.WorkerJobInstanceTaskLogRequest)].
System (please complete the following information):
linux
[e.g. linux, macOS, windows]1.13
[e.g. 1.13
]1.1.1
[e.g. 1.1.1
]Describe the bug
A clear and concise description of what the bug is.
To Reproduce
// java code
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
总提示:Must ask fail! path=/user/worker anchor=akka://[email protected]:25520/
请教如何解决。
[feature]
1.add support dotnet/shell command
2.可以在页面上查看历史job运行日志
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.