RESTful开发时经常会遇到参数传入日期类型及返回的日期类型值,日期和时间戳如果没有适当和一致地处理,就会给人带来头痛的问题,我这里建议大家使用统一格式化的时间字符串yyyy-MM-dd HH:mm:ss
,为什么建议这个呢?这样看起来比较直观,前后端联调起来比较高效。
下面我们就细说一下日期类型的参数将如何处理。
RESTful开发时经常会遇到参数传入日期类型及返回的日期类型值,日期和时间戳如果没有适当和一致地处理,就会给人带来头痛的问题,我这里建议大家使用统一格式化的时间字符串yyyy-MM-dd HH:mm:ss
,为什么建议这个呢?这样看起来比较直观,前后端联调起来比较高效。
下面我们就细说一下日期类型的参数将如何处理。
通常,如果我们要在程序中做一个耗时的操作(例如调用其他外部模块),一般会通过异步的方式执行。
有这2种方法:
对于第一种方法的异常处理,楼主已经在Java子线程中的异常处理(通用)这篇文章中介绍了,也就是提交任务后获取到Future对象,通过future.get()
获取返回值的时候能够捕获到ExcecutionException。
对于Spring @Async注解的方法,如何进行异常处理呢?楼主想到了2种方法。
伴随着业务的不断更新迭代,容器启动的和停止经常发生,当容器停止时,如果容器内的程序未执行完,那么将会造成数据不完整,特别是一些分布式事务,可能会导致数据不一致,为此,容器引入优雅关闭功能。
当我们执行docker stop命令后,docker会向容器中进程ID为1的进程发送SIGTERM(kill -15)信号,当等待一段时间后程序仍然没有退出后,将发送SIGKILL(kill -9)信号强制杀死进程。等待时间可以通过参数设置:
1 |
第一种:Nginx 版本
针对一般的单体应用,通过 Nginx 切换端口可以做到平滑无感知的更新。 大致的步骤是这样的:
1、打一个新的 jar 包,端口号和之前旧的不同。
2、运行新的 jar 包(注意旧的和新的同时在运行)。
3、在 Nginx 配置中把域名转发到新的端口上。
4、确认转发无误后关闭旧的 jar 包。 这主要是利用了 Nginx 的无感知重载配置文件的功能,只需要 reload 一下就可以实现无缝切换。