我在Windows 2012 R2的任务计划程序中安排了一个C#控制台应用程序.当手动或计划任务点击右键执行它的应用将运行并点击运行,但是当通过任务计划程序与下面的错误触发,则会失败.
操作员或管理员拒绝了请求(0x800710E0)
谷歌搜索后,我也按照以下步骤操作
我想在ASP.NET Web API中创建一些函数,这些函数应该在特定时间每天执行,并执行特定任务,如更新状态/记录/生成电子邮件,SMS.
我应该在Code中创建TaskService
using System;
using Microsoft.Win32.TaskScheduler;
class Program
{
static void Main(string[] args)
{
// Get the service on the local machine
using (TaskService ts = new TaskService())
{
// Create a new task definition and assign properties
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "Does something";
// Create a trigger that will fire the task at this time every other day
td.Triggers.Add(new DailyTrigger { DaysInterval = 2 });
// Create an action that will launch Notepad whenever the …Run Code Online (Sandbox Code Playgroud) 我使用Laravel任务调度,但是当我从控制器调用某个方法时遇到问题.
protected function schedule(Schedule $schedule)
{
$schedule->call('UserController@deleteInactiveUsers')->everyMinute();
//$schedule->call('App\Http\Controllers\UserController@deleteInactiveUsers')->everyMinute();
}
Run Code Online (Sandbox Code Playgroud)
当我使用未注释的行调用时,我收到此错误:
[ReflectionException]
Class RecurrenceInvoiceController does not exist
Run Code Online (Sandbox Code Playgroud)
然后我插入完全限定的命名空间路径,然后我收到此错误:
[PDOException] SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
Run Code Online (Sandbox Code Playgroud)
和
[ErrorException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿?从Laravel任务调度中调用Controller的方法是正确的.
我有一个调度程序,它以5秒的固定延迟触发。
我计划有多个调度程序,但是现在,让我们仅使用一个调度程序。
要求:应根据业务条件更改调度程序的fixedDelay。
**例如,**默认fixedDelay为5secs,但根据条件,它可以为6、8、10secs。
因此,为了达到这个目的,我正在尝试修改fixedDelay。但这对我不起作用。
代码:
接口,带有延迟方法。
public abstract class DynamicSchedule{
/**
* Delays scheduler
* @param milliseconds - the time to delay scheduler.
*/
abstract void delay(Long milliseconds);
/**
* Decreases delay period
* @param milliseconds - the time to decrease delay period.
*/
abstract void decreaseDelayInterval(Long milliseconds);
/**
* Increases delay period
* @param milliseconds - the time to increase dela period
*/
abstract void increaseDelayInterval(Long milliseconds); …Run Code Online (Sandbox Code Playgroud) 问题: 我想在应用程序进入后台 5 秒后运行一个简单的函数。
我必须实现BGTaskScheduler,以支持 iOS 13。 BackgroundTask 的旧实现适用于旧 iOS 版本。
我按要求添加了后台模式(勾选了 BLE 配件,因为我们在此功能中执行了一个小的 BLE 操作):
然后,我根据文档准备了 Info.plist(标识符是假的,仅用于 StackOverflow 问题):
在didFinishLaunchingWithOptions结束之前,我注册了我的 BackgroundTask:
if #available(iOS 13.0, *) {
BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.example.MyID", using: .global()) { (task) in
print("My backgroundTask is executed NOW!")
task.expirationHandler = {
task.setTaskCompleted(success: true)
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当应用程序运行didEnterBackground方法时,我提交了一个 BackgroundTaskRequest:
if #available(iOS 13.0, *) {
do {
let request = BGAppRefreshTaskRequest(identifier: "com.example.MyID")
request.earliestBeginDate = Calendar.current.date(byAdding: .second, value: 5, to: Date())
try BGTaskScheduler.shared.submit(request)
print("Submitted …Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以将任务计划程序的历史记录信息放入批处理或PowerShell脚本中的数组或变量中。
例如,获取信息,例如任务名称,任务启动时(事件ID:100)和任务完成时(事件ID:102)的日期和时间。这样,我就可以使用该信息更新SQL数据库。(SQL表可能看起来像这样,一旦知道了信息,我就知道如何插入数据库中)
TaskName TaskStart TaskCompleted
task1 27/09/2017 09:00:00 27/09/2017 10:00:00
task2 27/09/2017 12:00:00 27/09/2017 16:00:00
task1 04/10/2017 09:00:00 04/09/2017 09:55:00
Run Code Online (Sandbox Code Playgroud)
基本上,即使可能,我也不知道如何检索该信息。谢谢
我创建了一个简单的Windows窗体应用程序,它显示了计算机上所有计划任务的名称和文件夹.我正在使用Task Scheduler Managed Wrapper(Microsoft.Win32.TaskScheduler),下面是获取名称并显示它们的代码.然而,似乎AllTasks实际上并没有给我所有的任务.有一些没有显示.在这种情况下,什么可能导致任务被隐藏?
using (TaskService tsksrvs = new TaskService())
{
foreach (Task tsk in tsksrvs.AllTasks)
{
textJobsList.Text += tsk.Name + " (" + tsk.Folder + ")" + Environment.NewLine;
}
}
Run Code Online (Sandbox Code Playgroud) 示例run.bat文件
echo "Test"
echo %1
echo %2
set /p DUMMY=Hit ENTER to continue...
Run Code Online (Sandbox Code Playgroud)
所以这个bat文件将打印提供给它们的前两个参数。参数可能包含也可能不包含空格。为此,我用双引号将它们转义。
run.bat -test "arg2 d"
Run Code Online (Sandbox Code Playgroud)
当通过命令行调用时,它工作得非常好。
我想通过任务计划程序安排该蝙蝠。但任务计划程序打开一个cmd窗口并立即关闭。
不工作
在职的
请注意参数中的引用。这就是导致问题的原因。那么我怎样才能避免与空格的争论呢?
此外,如果输入的程序/脚本文件位置不带引号,则参数有效。但为此,脚本必须位于没有空格的文件夹中。
行动错误
那么如何创建一个文件路径中带有空格的任务以及带有空格的参数。
它只发生在 Windows 10 中。顺便说一句,它在 Windows 7 中运行良好。
我已经配置了两个不同的线程池,一个用于@Scheduled和另一个用于@Async.但是,我注意到@Async没有使用线程池.
这是Scheduler配置
@Configuration
@EnableScheduling
public class SchedulerConfig implements SchedulingConfigurer {
private final int POOL_SIZE = 10;
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(POOL_SIZE);
threadPoolTaskScheduler.setThreadNamePrefix("my-sched-pool-");
threadPoolTaskScheduler.initialize();
scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
}
}
Run Code Online (Sandbox Code Playgroud)
这是Async的配置
@Configuration
@EnableAsync
public class AppConfig {
@Bean(name = "asyncTaskExecutor")
public TaskExecutor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(15);
executor.setMaxPoolSize(15);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("my-async-pool-");
executor.initialize();
return executor;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我如何调用它们
@Scheduled(fixedRateString = "2000" )
public void schedule() {
log.debug("here is the message …Run Code Online (Sandbox Code Playgroud) threadpoolexecutor spring-scheduled spring-boot taskscheduler spring-async
taskscheduler ×10
c# ×3
batch-file ×2
asp.net ×1
cron ×1
ios ×1
java ×1
laravel ×1
laravel-5 ×1
php ×1
powershell ×1
scheduler ×1
spring ×1
spring-async ×1
spring-boot ×1
swift ×1
windows ×1
windows-10 ×1
windows2012 ×1