介紹
powerjob提供了容器功能,用來做一些靈活的任務處理,這里容器為 JVM 級容器,而不是作業系統級容器(Docker),(至于為什么取“容器”這個有歧義的名字是因為作者沒想出來更合適的稱呼,哈哈)
用途
- 有一些任務完全獨立于業務,代碼量也不大,既不希望耦合于原業務代碼,也不值得再搞一套新建專案->編譯->部署,或者說容器模板幫我們做了新建專案中的機械性作業,使我們可以在模板上直接書寫自己的代碼,不必考慮專案配置,也大大簡化了部署,
- 可以讓Java程式員的開發有接近于shell腳本開發一樣的方便體驗,
容器任務部署指南
生成容器模板
下載解壓模板,開發容器工程
下載后得到如下工程,可以在指定的package下開發代碼

以下是新建類的示例代碼,其他部分不需要任何改動
package org.example.demo;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;
/**
* @author zhengqian
* @date 2022.05.10
*/
@Component
public class SimpleProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext taskContext) throws Exception {
// 在線日志功能,可以直接在控制臺查看任務日志,非常便捷
OmsLogger omsLogger = taskContext.getOmsLogger();
omsLogger.info("SimpleProcessor start to process, current JobParams is {}.", taskContext.getJobParams());
// TaskContext為任務的背景關系資訊,包含了在控制臺錄入的任務元資料,常用欄位為
// jobParams(任務引數,在控制臺錄入),instanceParams(任務實體引數,通過 OpenAPI 觸發的任務實體才可能存在該引數)
String params = taskContext.getJobParams();
// 回傳結果,該結果會被持久化到資料庫,在前端頁面直接查看,極為方便
return new ProcessResult(true, "simple processor finished with params=" + params);
}
}
新建容器,打包上傳
在工程目錄下執行
mvn package
在工程的target目錄下會生成jar包,選擇 powerjob-processor-demo-1.0-SNAPSHOT-jar-with-dependencies.jar 上傳,
容器運維->新建容器,這里選擇了FastJar方式,也可以選擇Git方式,提供git地址來創建容器,

容器部署
容器生成后點擊部署

新建任務
容器部署完,就可以新建任務,執行指定容器的指定Processor類

執行,查看結果
點擊執行后,可以在查看詳情和日志

報錯排查
點擊部署容器時沒有反應,查看控制臺,出現以下報錯

原因是服務不支持wss連接,測驗wss連接的方法
# install
npm install -g wscat
# wscat test
wscat -c 'wss://xxxxx.com/container/deploy/1'
# 回傳
error: Unexpected server response: 404
解決方法:
配置server域名時添加wss協議支持,修改nginx配置(添加最后兩行):
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
官方檔案
更多引數和解釋參見官方檔案 https://www.yuque.com/powerjob/guidence/tetw6y
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/472346.html
標籤:其他
上一篇:ThinkPHP V6.0.12在php8.1下驗證碼出現問題
下一篇:RabbitMQ從概念到使用、從Docker安裝到RabbitMQ整合Springboot【1.5w字保姆級教學】
