[xuxueli/xxl-job]调度成功,任务终止不了

2024-05-15 864 views
0

你好,我这里用的是1.9.0-SNAPSHOT,有一个每分钟执行的job,可以正常调度,但是,有时候任务无法终止,截图如下: g

多次出现后,会导致管理后台很卡,没想到啥原因。

回答

9

而且在执行日志里面,也是显示完成: ----------- xxl-job job execute end(finish) ----------- ----------- ReturnT:ReturnT [code=200, msg=null, content=null]

对了,另外有个小提议: 这样没有终止的任务有19页,如果有个批量操作的功能,来批量停止任务就好了。。

9

你好,问题比较多,我分别描述下: 1、任务无法终止:可能有两种原因,一个原因是耗时任务阻塞,导致后续任务等待;两个原因是任务回调失败,导致无法回调通知任务结果。可以排查下执行器Log确认,如果回调失败,确认下回调地址配置与网络是否异常。 2、任务管理后台很卡:大数据量任务之日情况下,数十万甚至百万之后,底层SQL速度较慢导致比较卡。可以参考master代码(1.9.2快照版)优化,百万日志情况下,速度可提升1000倍; 3、批量终止:目前任务终止是批量进行的,终止是以执行器为维度的,该执行器下运行中的多个任务会批量终止。但是,你的情况应该是任务回调失败导致的,所以无法进行批量终止。

7

感谢阁下的悉心回答,不清楚是不是回调的原因,但确实有报错:

2018-05-07 13:40:32,187 ERROR [Thread-8] com.xxl.job.core.util.HttpClientUtil [HttpClientUtil.java : 67] Read timed out java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137) at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153) at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:282) at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138) at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:165) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) at com.xxl.job.core.util.HttpClientUtil.postRequest(HttpClientUtil.java:60) at com.xxl.job.core.rpc.netcom.jetty.client.JettyClient.send(JettyClient.java:29) at com.xxl.job.core.rpc.netcom.NetComClientProxy$1.invoke(NetComClientProxy.java:57) at com.sun.proxy.$Proxy74.registry(Unknown Source) at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:57) at java.lang.Thread.run(Thread.java:745)

我现在把阻塞处理策略改成了覆盖之前调度,项目重启、日志也全部清除了,看下会不会再出现。

4

你好,上述Log提示行器注册失败。可任务回调失败是同一个问题。 可以检查下执行器回调地址配置是否配错了。

1

这个问题解决了吗,我也碰到一个一样的问题,也是报在send这里

6

@xuxueli 我也遇到了同样的问题,现在有大量的任务处于执行中的状态,如何终止呢

7

我也想知道 有没有那种批量终止任务的操作,我这边 有人之前的任务没有完成上线新版本 运行定时任务 导致很多任务堆积, 想问问如何快速杀掉过去废弃的任务

6

我现在遇到的情况是已经显示任务停止了但是一直回调log获取然后一直到异常结束为止 2023-08-26 21:47:23 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-130-1693057438544] ----------- xxl-job job execute end(finish) ----------- ----------- Result: handleCode=200, handleMsg = null 2023-08-26 21:47:23 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] ----------- xxl-job job callback fail, callbackResult:ReturnT [code=500, msg=java.lang.NullPointerException, content=null] 无线执行callbackResult