近日,在調研工作流Activiti7,構建本地項目,開發demo的時候,發起時間不一緻問題。已知,Activiti在部署流程的時候,會操作表ACT_RE_DEPLOYMENT,此表的作用是記錄流程曆史的發布(包括項目本身的啟動也會記錄一次);且,該表中定義了一個字段DEPLOY_TIME_(timestamp數據類型)。
構建啟動項目,部署一個流程(audit_process_1)發現字段DEPLOY_TIME_保存的時間與當前時間相差了13個小時。
流程部署記錄表截圖
排查問題服務器時區
本地服務,肯定是東八區時間,不存在對應的問題,跳過此步驟。
查詢mysql服務器的時間配置
SHOW VARIABLES LIKE '%time_zone%';
時區結果
CST時區
美國中部時間 Central Standard Time (USA) UTC-06:00
澳大利亞中部時間 Central Standard Time (Australia) UTC 09:30
中國标準時 China Standard Time UTC 08:00
古巴标準時 Cuba Standard Time UTC-04:00
然而,美國從“3月11日”至“11月7日”實行夏令時,美國中部時間改為 UTC-05:00,與 UTC 08:00 相差 13 小時。
解決方案數據庫連接參數
新增參數:serverTimezone=Asia/Shanghai
url: jdbc:mysql://localhost:3306/workflow?useSSL=false&nullCatalogMeansCurrent=true&serverTimezone=Asia/Shanghai
username: root
password: 123456
流程發布截圖
mysql配置
default-time-zone = ' 08:00'
timestamp,以時間戳格式存儲,占用4個字節,顯示依賴于所指定的時區;
datatime,以 YYYY-MM-DD HH:MM:SS 格式存儲時期時間,精确到秒,占用8個字節的存儲空間。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!