1 Star 0 Fork 51

谯夫 / project_14055964

forked from chuanjiao10 / kasini3000 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
kaiiit_后台任务.ps1 2.54 KB
一键复制 编辑 原始数据 按行查看 历史
chuanjiao10 提交于 2020-12-15 14:07 . 优化k-commit,k-commit-rs逻辑
#建议保存编码为:bom头 + utf8
#
Start-Sleep -Seconds 1
if ( ($IsWindows -eq $True) -or ($PSVersionTable.psversion.major -lt 6) ) #win
{
& 'c:\ProgramData\kasini3000\0k_source.ps1'
}
if ($IsLinux -eq $True)
{
& '/etc/kasini3000/0k_source.ps1'
}
#main
$互斥名字 = 'Global\卡死你3000kaiiit'
$建立互斥成功否 = $false
$互斥对象 = New-Object System.Threading.Mutex ($true,$互斥名字,[ref]$建立互斥成功否)
if ($建立互斥成功否)
{
}
else
{
if ( ($IsWindows -eq $True) -or ($PSVersionTable.psversion.major -lt 6) ) #win
{
& 'c:\ProgramData\kasini3000\get_Language.ps1'
}
if ($IsLinux -eq $True)
{
& '/etc/kasini3000/get_Language.ps1'
}
if ($env:LANG -eq 'zh_CN.UTF-8')
{
Write-Error '错误:互斥失败 !已经有 k-commit.ps1 后台任务进程正在运行中!退出码1`n请等待一会后,运行kl.ps1获取运行结果。'
}
else
{
Write-Error "error:There can only be one k-commit.ps1 process.Close PWSH.EXE process and wait 1 minute,then running again."
}
exit 1
}
#建立pid文件
& 'kaiiit_写pid.ps1'
& 'k_写log.ps1' -被写入的log内容 " $pid【kaiiit】开始运行"
Write-Error '信息:k-commit.ps1 后台任务现在开始运行!'
$private:超过此时间则退出 = (Get-Date).AddSeconds(60)
$global:kaiiit循环中 = $True
while ($global:kaiiit循环中 -eq $True)
{
& 'end_invoke_福报表.ps1'
$private:当前福报数 = (Get-PSSession).count
if ($private:当前福报数 -gt $global:kcommit并发进程数)
{
& 'k_写log.ps1' -被写入的log内容 "错误:$pid 现有福报数太多。 ${private:当前福报数} "
}
else
{
& 'begin_invoke_福报表.ps1'
}
if ($global:kaiiit后台任务_循环间隔_秒)
{
Start-Sleep -Seconds $global:kaiiit后台任务_循环间隔_
}
else
{
Start-Sleep -Seconds 10
}
if ($private:超过此时间则退出 -lt (Get-Date)) #每分钟判断一次是否有kaiiit任务运行
{
if ((Get-Job).count -le 0)
{
& 'k_写log.ps1' -被写入的log内容 " $pid【kaiiit】结束运行"
$global:kaiiit循环中 = $false
Write-Error '信息:所有 k-commit.ps1 后台任务运行完毕!'
}
else
{
$private:temp995 = "{0}现有福报任务{1}个" -f $pid,(Get-Job).count
& 'k_写log.ps1' -被写入的log内容 $private:temp995
$private:超过此时间则退出 = (Get-Date).AddSeconds(60)
}
}
if ( ($private:现在.Minute % 9 -eq 0) -and ($private:现在.Second -gt 51) )
{
Write-Verbose '开始运行 .net 垃圾回收'
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}
}
exit 0
PowerShell
1
https://gitee.com/qf2008/kasini3000.git
git@gitee.com:qf2008/kasini3000.git
qf2008
kasini3000
project_14055964
master

搜索帮助