在一个相关的问题中,我们使用ProcessBuilder探索了使用依赖于操作系统的命令以低优先级启动外部进程.我还发现,如果父进程的优先级较低,那么它生成的所有进程都将以低优先级启动.所以我的新问题是关于以低优先级启动java文件(通过双击Windows中的可执行jar运行)或在运行期间以编程方式更改其优先级.我尝试改变线程优先级,但这对Windows进程优先级没有影响.
我尝试了以下操作,但它不会更改任务管理器中的进程优先级
public class hello{
public hello(){
try{
Thread.currentThread().setPriority(1);
Thread.sleep(10000);
}catch(Exception e){e.printStackTrace();}
}
}
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一另一件事是使用批处理文件运行程序,但我宁愿把它留在家里也可以这么说.那么有谁知道基于java的方式来改变当前的进程优先级?理想情况下,能够在程序运行时更改进程的优先级以响应用户输入,这将是很好的.
我有一个在“用户会话登录”上触发的任务。我现在想限制该任务仅在工作日执行,而在周末被忽略。
那可能吗?
旁注:我不能使用触发器,on schedule因为我不想定期运行任务,而只能在登录时并且仅在工作日运行。
我正在使用Windows Scheduler来运行我编写的exe.
当调度程序启动我的exe时,如何跳转到调试会话?
更新1. 我曾想过做一个Thread.Sleep,然后选择Attach to Process.当我尝试它时,它说调试器已经附加到进程...
想象一下,你有一个运行优先级为AboveNormal的Windows进程A,它启动另一个进程B而不指定优先级.进程B的优先级是否继承了进程A的优先级?那么,流程B的优先级是什么?高于正常,正常还是其他?
我一直在用Python编写脚本,我想在计划的基础上自动在Windows服务器上运行.我非常简单地尝试使用批处理文件,但他们热情地转而使用Python脚本,并且我们正在使用它们.我编写的脚本很容易编写,当我手动执行它们时,它们完全按照我希望它们执行的操作完成.我现在编写了许多不同的脚本,主要处理复制,删除和重命名文件或移动目录.
问题是当我尝试使用Windows任务计划程序安排Python脚本时,其中许多都无法运行(任务计划程序说"上次运行结果= 0x1").这事儿常常发生.我也有类似批处理文件的经验(可以手动运行的批处理文件在计划时无法运行).鉴于我迄今为止经验有限,我不得不说这肯定是Windows任务计划程序问题,而不是Python问题.
这是一个示例Python脚本:
#import modules
import os, shutil, datetime, subprocess
#global variables
zip_dir = 'Y:\7z'
zip_dir_misc = 'X:\7z'
zip_extension = '.7z'
def newest_zip_file(directory, extension = zip_extension):
return max(
(os.path.join(dir_name, file_name)
for dir_name, dir_names, file_names in os.walk(directory)
for file_name in file_names
if file_name.endswith(extension)),
key=lambda fn: os.stat(fn).st_mtime)
def copy_zip_file(src_dir_p, temp_dir_p):
src_file = newest_zip_file(src_dir_p)
new_file = temp_dir_p + '\\' + os.path.basename(src_file)
shutil.copyfile(src_file, new_file)
copy_zip_file(zip_dir, zip_dir_misc)
Run Code Online (Sandbox Code Playgroud)
此脚本通过网络文件夹(表示为X:分区)将.7z文件从一个服务器复制到另一个服务器.此脚本在手动运行时有效,但在计划时则无效.但是,当更改脚本以将相同的.7z文件复制到同一服务器(而不是联网文件夹)上的另一个目录时,无论是手动执行还是计划执行,脚本都可以正常运行.
如果我在上面的脚本中以编程方式做错了(也许我指的是网络文件夹不正确)那么我可以一次修复这个脚本(虽然我已经尝试了我可以想象的每个组合使用类似的东西定义网络文件夹完整的服务器名称).但是我仍然遇到完全不同的Python脚本同样的问题,这些脚本的行为方式相同,这让我想到了一个真正的问题:
为什么看似有效的Python脚本在通过Windows任务计划程序启动时无法运行?
我的Windows任务计划程序配置:
我主要寻找解决这个一般问题的建议和最佳实践,而不是上面发布的示例脚本的具体修复.
试图弄清楚为什么我的控制台应用程序不会停止运行。
在 dotnet 核心应用程序 main 方法中使用以下方法:
await new HostBuilder().
...
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<MyHostedService>();
})
.UseConsoleLifetime()
.Build()
.RunAsync();
Run Code Online (Sandbox Code Playgroud)
使用以下设置从 Windows 任务计划程序发布和计划该任务有效:
到目前为止一切都很好。所有代码都正确执行。但是,任务保持运行,过程永远不会结束。(即使在任务调度程序的 UI 上按下刷新后也没有)
这是预期的吗?如果没有,我如何让进程终止?
如果可以预期,那么在一个刚刚启动、运行和停止的预定控制台应用程序中使用通用主机/托管服务是否仍然有意义?
我想输入一个整数(这些数字始终代表分钟),并将其添加到当前时间以在 SCHTASKS 命令中使用它。例如,如果当前是 14:56:03,我在 var1 中输入 9 或 09 应该在 var2 中设置 15:05:03。我有这个糖果
@echo OFF
echo add minutes
set/p "var1=>"
set/a "var2=%var1%+%time%"
SCHTASKS /change /sd %date% /st %var2% /tn task
Run Code Online (Sandbox Code Playgroud)
我知道这不起作用,但我不知道该怎么做。有任何想法吗?
如何使用 VB.NET 创建计划任务 - 单击按钮时从 vb.net 程序填充计划任务字段?
我目前一无所有,我什至不知道是否有可能。