gocron定時任務的安裝與運行詳解


1、安裝Go

使用go程序必須先有go,Linux下的安裝

yum install go

查看安裝版本

go version

2、下載gocron

gocron需要使用下載gocron和gocron-node

這里采用二進制文件的方式安裝,因為go已經把源碼打包成了可執行文件,下載下來直接運行就可以了,不需要自己去編譯和配置依賴

下載執行文件的地址是:

https://github.com/ouqiang/gocron/releases

看清楚自己的系統,需要下載gocron和gocron-node兩個包,gocron是web配置平台,gocron-node是需要在想要執行任務的節點服務器部署的程序

下載的時候有時候速度比較慢,多試幾次就可以了

wget https://github.com/ouqiang/gocron/releases/download/v1.5.2/gocron-v1.5.1-linux-amd64.tar.gz
wget https://github.com/ouqiang/gocron/releases/download/v1.5.2/gocron-node-v1.5.1-linux-amd64.tar.gz

3、解壓

選擇合適的目錄解壓,解壓命令:

tar -xvf gocron-v1.5.1-linux-amd64.tar.gz

tar -xvf gocron-node-v1.5.1-linux-amd64.tar.gz

我解壓的位置在wwwroot下,如果想換位置,可以是用復制的方法復制到指定目錄,然后再解壓,或是先進入到指定目錄,然后再該目錄中解壓

4、運行

分別進入gocron和gocron-node目錄中運行:

啟動gocron(為了安全,不使用root執行,而使用用戶www來執行):

sudo -u www ./gocron-v1.5.1-linux-amd64/gocron web

啟動gocron-node(不允許使用root執行,如果使用的是root執行則會失敗):

sudo -u www ./gocron-node-v1.5.1-linux-amd64/gocron-node

安裝時發現啟動上述程序,不管啟動哪個,都不能按Ctrl + C來終止或關閉SSH客戶端,否則直接退出。

5、換成后台腳本運行

創建gocron的shell腳本run.sh,gocron目錄及相關文件截圖

腳本run.sh:

#!/bin/bash
#啟動gocron
cd /data/wwwroot/gocron/gocron-linux-amd64
sudo -u www bash -c 'nohup ./gocron web &'

創建gocron-node的shell腳本run.sh,gocron-node目錄及相關文件截圖

#!/bin/bash
#啟動gocron-node
cd /data/wwwroot/gocron/gocron-node-linux-amd64
sudo -u www bash -c 'nohup ./gocron-node &'

修改文件權限,run.sh需要執行權限

chmod -R 777 run.sh

修改指定文件所屬權限組,例如

chown -R www:www run.sh

返回到/data/wwwroot/gocron/目錄,腳本運行gocron和gocron-node

source ./gocron-linux-amd64/run.sh
source ./gocron-node-linux-amd64/run.sh

已成功啟動gocron和gocron-node

說明(上述使用source執行的原因):當shell執行腳本的時候,它會開啟一個子shell,目錄跳轉命令只會在這個子shell中執行,並不會影響到父shell。要想在父shell中實現目錄的跳轉,需要用source來執行腳本。

其他說明:上述run.sh腳本中的bash -c 的使用方法及注意事項
用法:bash -c “cmd string”
通常使用shell去運行腳本,兩種方法 bash xxx.sh,另外一種就是bash -c “cmd string”
對於bash xxx.sh, 首先bash 會在當前目錄去尋找xxx.sh,如果找到,就直接運行,找不到則按照環境變量$PATH的指定路徑,按順序去找,如果找到,則執行,找不到則報錯。
shell腳本的參數$0就是要執行的shell腳本xxx.sh, $1就是后面緊跟xxx.sh的參數,$2 $3依次類推

詳細說明請查看【Linux中的bash -c 使用詳解】

6、登錄

打開web界面
從上面可以看到gocron默認監聽的是5920端口,通過瀏覽器訪問:http://localhost:5920 或http://服務器ip:5920 便可以打開web管理窗口

首頁打開需要進行一些安裝配置

安裝完成后會跳轉到登錄界面


添加任務節點
這里的每個定時任務都需要在一個任務節點下,因此想要添加一個定時任務需要先添加一個任務節點,示例如下:


添加定里任務
這里按照以下圖片進行添加即可:


7、優化

由於腳本中使用到了nohup,所以在run.sh目錄會生成nohup.out日志文件,隨着時間的推移,此文件會越來越多,最后可能會占用一大部分空間。可以通過改變nohup輸出方式來優化,具體請查看Linux nohup不輸出日志文件的方法

8、執行腳本隨服務器啟動設置

直接在服務器中的腳本/etc/rc.d/rc.local(和/etc/rc.local是同一個文件,軟鏈)末尾添加自己的腳本。

然后,增加執行權限chmod +x /etc/rc.d/rc.local。

具體操作請參考:Linux服務器開機自動啟動服務或腳本的方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM