• undifined
    2019-04-18
    老师 怎么用SpringBoot应用实现Serverless,比如我有一个生成文件的需求 现在是通过消息来执行 SQL 生成 Excel,但是很多时候这个服务都是空闲的,我觉得可以使用 Serverless,接收事件来启动应用执行文件生成,但是现在的平台好像都不支持 SpringBoot,老师能给些建议吗,谢谢老师

    作者回复: 好像目前主流的Serverless平台都是使用自已的SDK的,只需写业务逻辑即可。我们是不是可以换个思路,你想要的是在需要生成文件时才创建你的服务,我们可以在收到消息后调用云平台API创建生成文件服务,待执行完毕后再自己回收资源。这时你要自己来申请和释放资源。

    
     3
  • Jason
    2019-07-23
    spring写定时任务是推荐用crontab配合command line呢,还是推荐用Quartz的schedule呢?我总觉得框架内的schedule如果跑的时候遇到需要部署代码,会中断,这点无法接受。查了资料觉得java好像不太推荐command line来做定时任务。这里有最佳实践么?

    作者回复: crontab+命令,那就和Spring没什么关系了,那个是Linux自己的定时运行了。
    我觉得定时任务可以重入,有幂等处理就是对这个任务的基本要求,就算不是执行到一半遇到发布,你也有可能遇到执行到一半机器Crash。设计时就要考虑任务被中断的情况。

    
     2
  • 码农Kevin亮
    2019-04-24
    请教一下老师,同样通过配置去掉web依赖的情况下,在程序入口SpringApplication.run方法传入不同的启动类有什么么?
    比如在程序入口我不做修改,而是构造了一个CommandLineRunner的Bean,好像也能运行Runner中的run方法

    作者回复: SpringBoot会自己查找上下文里的CommandLineRunner和ApplicationRunner并执行的,并不是因为我们改了run。实际上我们例子里run传入的一直都是主类,你可以再仔细看看。

    
     1
  • WL
    2019-04-21
    想问一下老师返回码主要作用和使用场景是什么,还有demo中的讲到多个runner的场景, 想问一下命令行程序什么场景下会用到多个runner的实现呢,我目前好像没有遇到过。

    作者回复: 返回码是给外部调用者来用的,命令行返回0就知道你是成功运行的,不是0就有问题,Shell里就是靠这个来判断的。你当然可以把所有东西都写一起,但有时把代码合理拆分到多个类里,各司其职会更好维护点,它给你提供了这样的机制。

    
     1
  • ABC
    2019-04-17
    提到命令行程序,我第一时间想到的是:Spring Boot CLI,看完发现不是.之前老师好像说过不讲这个.
    
     1
  • WL
    2019-04-21
    再问一下老师两个问题:
    1. 源码中getExitCode()方法怎么保证多个generators的顺序的,在源码中好像看不出来可以指定多个ExitCodeGenerator可以自定义覆盖顺序的实现?
    2. 在exit()中 context.publishEvent(new ExitCodeEvent(context, exitCode)); 发布事件这个动作是发布给谁,为啥需要发布这个事件,为啥采用发布事件的方式实现?

    作者回复: 1. 它是有顺序的,你可以去看看SpringApplication.exit(),先是你给的参数,然后是Spring上下文里的。一个个跑,最后留下的要满足这个条件(value > 0 && value > exitCode || value < 0 && value < exitCode)
    2. 发布出去之后,如果有人关心这个状态就可以去监听它,做些ShutdownHook的事情。

    
    
我们在线,来聊聊吧