一、该问题的重现步骤是什么?
1. 我下载了一个v2.3.0的biz工程,并且拷贝了一份主工程下的xxl-job的服务,挪了一份到biz工程里
2. 一开始配置调试不通,后来我发现必须在nacos上给我建的这个xxl-job的服务配置一个数据库连接项指向xxl-job的数据库才能正常运行。
3.目前biz工程里的xxl-job服务可以正常运行,也能接受xxl-job-admin的调度调用。
但是,调通后我也有些问题想问下翼总。
二、你期待的结果是什么?实际看到的又是什么?
因为目前放在biz工程里的,对于我的应用场景只能满足一部分需求。如果我需要在其他外网的服务器上部署xxl-job的执行器是否可行?因为,我的应用场景需要控制或者安排,在客户的服务器上(有可能是外网),去按照特定的需求去收集和调用一些操作。如果使用bladex集成的这些体系的东西,究竟用什么可以实现满足这种场景应用。
我原本以为xxl-job可以实现协调外网的服务器,可是如果执行器还要连中央数据库(直连的话),这种似乎针对我这种需求就不合适。所以,想咨询下xxl-job是否可以应用在我这种场景,或者有什么更好的方式方法。
另外,xxl-job的执行器为什么必须要连数据库,是因为调度命令和数据其实都是通过数据库传递的吗?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex v2.3.0
四、请提供详细的错误堆栈信息,这很重要。
2020-01-19 19:24:51.183 INFO 3484 --- [ main] io.undertow : starting server: Undertow - 2.0.28.Final
2020-01-19 19:24:51.194 INFO 3484 --- [ main] org.xnio : XNIO version 3.3.8.Final
2020-01-19 19:24:51.211 INFO 3484 --- [ main] org.xnio.nio : XNIO NIO Implementation Version 3.3.8.Final
2020-01-19 19:24:51.308 INFO 3484 --- [ main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 7008 (http) with context path ''
2020-01-19 19:24:51.404 INFO 3484 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, DEFAULT_GROUP blade-kxk-proxy-xxljob 192.168.31.113:7008 register finished
2020-01-19 19:24:51.419 INFO 3484 --- [ main] c.c.k.executor.KxkProxyJobApplication : Started KxkProxyJobApplication in 17.611 seconds (JVM running for 19.541)
2020-01-19 19:24:51.426 INFO 3484 --- [ task-1] o.s.core.launch.StartEventListener : ---[BLADE-KXK-PROXY-XXLJOB]---启动完成,当前使用的端口:[7008],环境变量:[dev]---
INFO: log output type is: file
INFO: log charset is: utf-8
INFO: log base dir is: /Users/mac/logs/csp/
INFO: log name use pid is: false
2020-01-19 19:24:54.456 INFO 3484 --- [on(8)-127.0.0.1] io.undertow.servlet : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-01-19 19:24:54.456 INFO 3484 --- [on(8)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-01-19 19:24:54.534 INFO 3484 --- [on(8)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Completed initialization in 78 ms
2020-01-19 19:24:55.213 INFO 3484 --- [ parallel-1] io.lettuce.core.EpollProvider : Starting without optional epoll library
2020-01-19 19:24:55.247 INFO 3484 --- [ parallel-1] io.lettuce.core.KqueueProvider : Starting with kqueue library
五、若有更多详细信息,请在下面提供。
1. 可以在外网调度,但是前提是两个程序网络可以相互联通
2、3. xxljob-admin是需要依赖数据库的,任何中间件都有很多配置,如果没有数据库支撑,是没法运行的
其实也不用只考虑只有一个xxljob-admin核心服务的情况,它只是起到任务调度的作用。如果分隔多地,也可以建立多个xxljob-admin,把他们分开来操作。
如果一定只能有一个中心的xxljob-admin,那么只需要保证服务相互联通即可
xxl-job-admin服务需要数据库,这是合理的。我问的是执行器xxl-job的服务,也需要数据库支撑吗?我看你的调用处理控制器里,有:
() ReturnT(String param) Exception { HttpURLConnection connection = BufferedReader bufferedReader = { URL realUrl = URL(param)connection = (HttpURLConnection) realUrl.openConnection()connection.setRequestMethod()connection.setDoOutput()connection.setDoInput()connection.setUseCaches()connection.setReadTimeout(* )connection.setConnectTimeout(* )connection.setRequestProperty()connection.setRequestProperty()connection.setRequestProperty()
这个就是跨网的处理逻辑吧。执行器也必须有数据库支撑吗。
() ReturnT(String param) Exception {
这个服务不一定要数据库,可以不连数据库单纯执行操作。这些都是要看具体业务场景的。
一些定时操作结束,一般都是要把结果再回插到数据库,所以我默认链接了
如果不需要,直接把数据库模块去掉就行
扫一扫访问 Blade技术社区 移动端