Fetch the repository succeeded.
This action will force synchronization from chuanjiao10/kasini3000, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
#建议保存编码为:bom头 + utf8
#$PSModuleAutoloadingPreference = 0
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
#建立pid文件
& 'kaiiit_写pid_rs.ps1'
try
{
$log日志文件全目录 = "${global:kasini3000_data_path}"
if (Test-Path -LiteralPath $log日志文件全目录)
{
$private:kaiiit_rs_pid文件 = "$log日志文件全目录/kaiiit_pid_rs.txt"
if (Test-Path -LiteralPath $private:kaiiit_rs_pid文件)
{
$private:文件流 = New-Object System.IO.FileStream($private:kaiiit_rs_pid文件,[System.IO.FileMode]::Open,[System.IO.FileAccess]::read,[System.IO.FileShare]::none)
}
}
}
catch
{
Write-Error '错误:kaiiit_rs任务,文件上锁失败,无法读取!返回码5'
exit 5
}
& 'k_写log.ps1' -被写入的log内容 " $pid【kaiiit-rs】开始运行"
Write-Error '信息:k-commit-rs.ps1 后台任务现在开始运行!'
$private:temp991 = Get-Random -InputObject (0..9)
$private:kaiiit_rs任务运行在秒 = @($private:temp991,($private:temp991 + 10),($private:temp991 + 20),($private:temp991 + 30),($private:temp991 + 40),($private:temp991 + 50))
$script:进程内所有任务线程_超时时间 = (Get-Date).AddMinutes(73)
#$script:等待1分钟_2 = (Get-Date).AddMinutes(1)
$global:kaiiit_rs_循环中 = $True
$private:本进程_内的最大线程数_已经超过 = $false
$private:已经fork过新进程 = $false
$private:写日志时间间隔 = Get-Date
while ($global:kaiiit_rs_循环中 -eq $True)
{
& 'end_invoke_福报表_rs.ps1'
#超过1小时13分钟,强制退出。
if ($script:进程内所有任务线程_超时时间 -lt (Get-Date))
{
$private:temp993 = "错误:$pid 超过1小时13分钟,强制退出。 ${private:当前福报数} "
& 'k_写log.ps1' -被写入的log内容 $private:temp993
Write-Error $private:temp993
$private:文件流.Dispose()
& 'kaiiit_删pid_rs.ps1'
$global:kaiiit_rs_循环中 = $false
continue
}
if ($private:已经fork过新进程 -eq $false)
{
$private:temp997 = & 'kdir-cmdb.ps1' -被查找的库文件名 'fb福报库_任务表rs_读取所有正运行任务数179.ps1'
if ( ($private:temp997 -eq '输入的库路径有错误') -and ($private:temp997 -eq '无返回') )
{
Write-Error "找不到 'fb福报库_任务表rs_读取所有正运行任务数179.ps1' "
}
else
{
$private:福报rs库返回值 = & $private:temp997
}
if ($private:福报rs库返回值 -gt $global:kcommitrs最大并发线程数_进程数_乘以_线程数_总和)
{
if ((Get-Date) -gt $private:写日志时间间隔)
{
$private:写日志时间间隔 = (Get-Date).AddMinutes(1)
& 'k_写log.ps1' -被写入的log内容 "错误:$pid 现有福报rs任务数,已经超过最大并发设定值,任务【线程】将被延时启动。 ${private:福报rs库返回值} "
}
Write-Error "错误:$pid 现有福报rs任务数,已经超过最大并发设定值,任务【线程】将被延时启动。 ${private:福报rs库返回值} "
}
else
{
& 'begin_invoke_福报表_rs.ps1'
}
}
$private:当前福报数 = (Get-RSJob).count
if ($private:当前福报数 -gt $global:kcommitrs并发线程数_单进程)
{
$private:本进程_内的最大线程数_已经超过 = $True
}
# 超过线程数,或超时10分钟,则只fork一次新进程。
if ( ($private:本进程_内的最大线程数_已经超过 -eq $True) -and ($private:已经fork过新进程 -eq $false))
{
$private:已经fork过新进程 = $true
$private:temp992 = "信息:{0} 现有rs福报数太多。 {1} 正在轮换kcommitrs进程 " -f $pid,${private:当前福报数}
& 'k_写log.ps1' -被写入的log内容 $private:temp992
Write-Error $private:temp992
$private:文件流.Dispose()
& 'kaiiit_删pid_rs.ps1'
if ($global:kcommitrs_的ps版本)
{
if ( ($IsWindows -eq $True) -or ($PSVersionTable.psversion.major -lt 6) ) #win
{
Start-Process -WindowStyle "hidden" -FilePath "$global:kcommitrs_的ps版本" -ArgumentList " -NonInteractive -NoProfile -file ${global:kasini3000目录}/kaiiit_后台任务_rs.ps1"
}
if ($IsLinux -eq $True)
{
$private:linux_process_args = " $global:kcommitrs_的ps版本 -NonInteractive -NoProfile -file ${global:kasini3000目录}/kaiiit_后台任务_rs.ps1 "
Write-Verbose $private:linux_process_args
Start-Process -FilePath '/usr/bin/nohup' -ArgumentList $private:linux_process_args
}
}
else
{
Write-Error "错误:k-commit-rs.ps1中,找不到变量【$global:kcommitrs_的ps版本】,错误码3"
exit 3
}
}
# if ($global:kaiiit后台任务_循环间隔_秒)
# {
# Start-Sleep -Seconds $global:kaiiit后台任务_循环间隔_秒
# }
# else
# {
# Start-Sleep -Seconds 10
# }
do
{
Start-Sleep -Seconds 1
$private:现在 = Get-Date
}
while ($private:现在.Second -notin $private:kaiiit_rs任务运行在秒)
if ($private:当前福报数 -le 0)
{
if ($private:已经fork过新进程 -eq $true)
{
$global:kaiiit_rs_循环中 = $false
$private:temp995 = "{0}【kaiiit-rs】结束运行。本进程已经fork新进程" -f $pid
& 'k_写log.ps1' -被写入的log内容 $private:temp995
Write-Error $private:temp995
}
else
{
if ($script:等待3分钟)
{
if ((Get-Date) -gt $script:等待3分钟)
{
$private:文件流.Dispose()
& 'kaiiit_删pid_rs.ps1'
$global:kaiiit_rs_循环中 = $false
$private:temp995 = "{0}【kaiiit-rs】结束运行。本进程没有fork新进程" -f $pid
& 'k_写log.ps1' -被写入的log内容 $private:temp995
Write-Error $private:temp995
}
}
else
{
$script:等待3分钟 = (Get-Date).AddMinutes(3)
}
}
}
else
{
if ((Get-Date) -gt $script:等待1分钟_2)
{
$script:等待1分钟_2 = (Get-Date).AddMinutes(1)
$private:temp995 = "{0}现有福报rs任务{1}个" -f $pid,$private:当前福报数
& 'k_写log.ps1' -被写入的log内容 $private:temp995
}
#$DebugPreference = 'Continue'
if ($DebugPreference -eq 'Continue')
{
foreach ($i in (Get-RSJob))
{
$private:temp994 = "线程id:{0},完成状态:{1}" -f $i.InstanceID,$i.State
& 'k_写log.ps1' -被写入的log内容 $private:temp994
}
}
if ($script:等待3分钟)
{
Remove-Variable $script:等待3分钟
}
}
$private:现在 = Get-Date
if ( ($private:现在.Minute % 9 -eq 0) -and ($private:现在.Second -gt 51) )
{
Write-Verbose '开始运行 .net 垃圾回收'
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
$private:本进程_内的最大线程数_已经超过 = $True
}
}
exit 0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。