日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Centosflock防止腳本重復(fù)運(yùn)行

如果crontab設(shè)定任務(wù)每分鐘執(zhí)行一次,但執(zhí)行的任務(wù)需要花費(fèi)5分鐘,這時(shí)系統(tǒng)會(huì)再執(zhí)行導(dǎo)致兩個(gè)相同的任務(wù)在執(zhí)行。發(fā)生這種情況下可能會(huì)出現(xiàn)一些并發(fā)問(wèn)題,嚴(yán)重時(shí)會(huì)導(dǎo)致出現(xiàn)臟數(shù)據(jù)性能瓶頸等惡性循環(huán)。

為高密等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及高密網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、高密網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

如果crontab設(shè)定任務(wù)每分鐘執(zhí)行一次,但執(zhí)行的任務(wù)需要花費(fèi)5分鐘,這時(shí)系統(tǒng)會(huì)再執(zhí)行導(dǎo)致兩個(gè)相同的任務(wù)在執(zhí)行。 發(fā)生這種情況下可能會(huì)出現(xiàn)一些并發(fā)問(wèn)題,嚴(yán)重時(shí)會(huì)導(dǎo)致出現(xiàn)臟數(shù)據(jù)性能瓶頸等惡性循環(huán)。 為了防止這種情況,可以使用flock建立排它鎖。

例:

# /tmp/sleeptest.sh

#!/bin/bash
# Sleep
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# export PATH
echo ""
echo "*****************************************"
echo "start time `date '+%Y-%m-%d %H:%M:%S'`   "
sleep 300s
echo "finish time `date '+%Y-%m-%d %H:%M:%S'`  "
echo "*****************************************"

計(jì)劃任務(wù)

# crontab -e
*/1 * * * *  /tmp/sleeptest.sh >> /tmp/sleeptest.log

查看進(jìn)程

#ps aux | grep sleeptest.sh | wc -l
2

(每分鐘都會(huì)增加一個(gè),說(shuō)明shell重復(fù)執(zhí)行中)

flock鎖

使用flock建立排它鎖,如果對(duì)進(jìn)程加了排他鎖其他進(jìn)程無(wú)法加鎖, 可以選擇等待超時(shí)或馬上返回。

flock [-sxun][-w #]
flock [-sxon][-w #] file [-c] command

-s, --shared:    獲得一個(gè)共享鎖
-x, --exclusive: 獲得一個(gè)獨(dú)占鎖/排他鎖
-u, --unlock:    移除一個(gè)鎖,通常是不需要的,腳本執(zhí)行完會(huì)自動(dòng)丟棄鎖
-n, --nonblock:  如果沒(méi)有立即獲得鎖,直接失敗而不是等待
-w, --timeout:   如果沒(méi)有立即獲得鎖,等待指定時(shí)間
-o, --close:     在運(yùn)行命令前關(guān)閉文件的描述符號(hào)。用于如果命令產(chǎn)生子進(jìn)程時(shí)會(huì)不受鎖的管控
-c, --command:   在shell中運(yùn)行一個(gè)單獨(dú)的命令
-h, --help       顯示幫助
-V, --version:   顯示版本
-w 等待時(shí)間,秒

添加鎖

*/1 * * * * flock -xn /tmp/sleeptest.lock -c /tmp/sleeptest.sh >> /tmp/sleeptest.log
## -x 獨(dú)占鎖 -n 直接失敗 如發(fā)現(xiàn)被鎖如就失敗不等待,除非解鎖。

*/1 * * * * flock -x -w 30 /tmp/sleeptest.lock -c /tmp/sleeptest.sh >> /tmp/sleeptest.log
## 如發(fā)現(xiàn)被鎖等30秒,解鎖成功的話就執(zhí)行。

分享標(biāo)題:Centosflock防止腳本重復(fù)運(yùn)行
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/dhshedo.html