我在ASP.NET Web应用程序中使用Quartz.NET.我将以下代码放在按钮单击处理程序中以确保它执行(用于测试目的):
Quartz.ISchedulerFactory factory = new Quartz.Impl.StdSchedulerFactory();
Quartz.IScheduler scheduler = factory.GetScheduler();
Quartz.JobDetail job = new Quartz.JobDetail("job", null, typeof(BackupJob));
Quartz.Trigger trigger = Quartz.TriggerUtils.MakeDailyTrigger(8, 30); // i edit this each time before compilation (for testing purposes)
trigger.StartTimeUtc = Quartz.TriggerUtils.GetEvenSecondDate(DateTime.UtcNow);
trigger.Name = "trigger";
scheduler.ScheduleJob(job, trigger);
scheduler.Start();
Run Code Online (Sandbox Code Playgroud)
这是"BackupJob":
public class BackupJob : IJob
{
public BackupJob()
{
}
public void Execute(JobExecutionContext context)
{
NSG.BackupJobStart();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题:为什么"BackupJobStart()"没有解雇?我之前使用过类似的代码,但它运行良好.
编辑:@Andy White,我想在Global.asax的Application_Start中使用它.这不起作用,这就是为什么我把它移动到一个按钮点击处理程序来缩小问题的范围.
我有一些我支持的用户要求自动发生事情(更自动化,但这是另一点!).
一个人希望事件每120秒发生一次(参见我的另一个问题),另一个人希望在每个工作日的下午5点发生一件事.这必须在Excel工作表上,因此VBA作为插件等将是不,因为它需要自包含.
我非常不喜欢使用Application.OnTime 我认为它危险且不可靠,其他人怎么想?
编辑:交叉发布是VBA宏定时器样式,每隔设定的秒数运行代码,即120秒
我问我虽然怀疑有这样的系统.
基本上我需要安排任务在将来的某个时刻执行(通常不会超过几秒或从现在开始几分钟),并且有一些方法可以取消该请求,除非为时已晚.
IE浏览器.代码看起来像这样:
var x = Scheduler.Schedule(() => SomethingSomething(), TimeSpan.FromSeconds(5));
...
x.Dispose(); // cancels the request
Run Code Online (Sandbox Code Playgroud)
.NET中有这样的系统吗?TPL中有什么可以帮助我吗?
我需要在这里的系统中的各种实例中运行这样的future-actions,而宁愿避免每个这样的类实例拥有自己的线程并处理它.
另请注意,我不想要这个(或类似的,例如通过任务):
new Thread(new ThreadStart(() =>
{
Thread.Sleep(5000);
SomethingSomething();
})).Start();
Run Code Online (Sandbox Code Playgroud)
可能会执行一些此类任务,除了接近截止日期之外,它们不需要以任何特定顺序执行,并且它们具有类似实时性能概念的任何内容并不重要.我只是想避免为每个这样的动作单独创建一个线程.
.net multithreading scheduling .net-4.0 task-parallel-library
我已经完成了一大堆工作来从Web服务中检索一些数据,但现在遇到了向它安排请求的问题,我不确定从哪里开始.
我收听事件的jms队列,收到事件后,我需要在一段时间后向Web服务发出请求.持续时间因事件属性而异.如果Web服务返回false,我需要继续计划请求,直到它返回true.
我在考虑在收到事件或错误响应时在队列上创建查找请求,但这似乎并不理想 - 我会不断消耗消息,检查时间以查看是否应该发出请求如果没有,就把它放回队列.
如果有人就如何实施这样的问题得到建议我真的很感激.
我有一个C ++ Windows服务,应该每15分钟调用一次函数。我是c ++的新手,不知道该怎么做,有人可以告诉我如何实现吗?
谢谢,Subrat
我有一个C#类我正在处理代表一个配置文件,其中包含一些调度信息,表明白天有多少更新,以及每周每天更新的布尔值.我在这里和其他网站上看过一些帖子,以找到给定工作日的下一个实例,等等,但不是某个人正在寻找的日子可能会有所不同.
例如,我可能会在周一,周三和周四给出一个对象为真.找到下周真实日期的下一个实例的最佳方法是什么?
我可以想出一些漫长而漫长的方法来找到本周的下一个"真实"日子,但是有一些更清洁的东西,我不熟悉那就可以了吗?我不想使用任何第三方库,因为这需要信息保证人员的大量特别批准.
我知道调度是由内核完成的.让我们假设Linux中的进程(P1)当前正在处理器上执行.由于当前进程对时间片一无所知并且内核当前没有在处理器上执行,因此内核如何安排下一个进程执行?
是否有某种中断告诉处理器切换执行内核或任何其他机制?
我想设计一个彩票调度器,我需要一个非常好的(伪)随机数发生器,类似于LCG,但我想知道是否还有其他更好的选择?我特意寻找用C语言编写的随机生成器.
LCG代码:
unsigned long lcg_rand(unsigned long a)
{
return (a * 279470273UL) % 4294967291UL;
}
Run Code Online (Sandbox Code Playgroud)
另外我想知道是否srand()可以用于此目的或不是非常准确?
我试图理解如何正确使用,或者如果我甚至将它用于正确的事情.我创造了一份工作:
class ScheduleSendNotificationsJob < ActiveJob::Base
queue_as :notification_emails
def perform(*args)
user_ids = User.
joins(:receipts).
where(receipts: {is_read: false}).
select('DISTINCT users.id').
map(&:id)
user_ids.each do |user_id|
SendNotificationsJob.create(id: user_id)
Rails.logger.info "Scheduled a job to send notifications to user #{user_id}"
end
end
end
Run Code Online (Sandbox Code Playgroud)
我想在一定时间内完成这项工作.作业轮询以查看是否有任何未完成的通知,批量处理,然后将它们发送给用户,以便用户可以收到一封包含大量通知的电子邮件,而不是每封电子邮件一封通知的电子邮件.我尝试使用延迟作业执行此操作,但似乎并非设计为定期安排某些内容.所以现在我正在尝试使用随时随地的宝石,但我似乎无法弄清楚如何正确设置它.
这是我在config/schedule.rb文件中的内容:
every 1.minute do
runner ScheduleSendNotifications.create
end
Run Code Online (Sandbox Code Playgroud)
当我在控制台中每当-i运行时,我得到以下内容:
Lorenzs-MacBook-Pro:Heartbeat-pods lorenzsell$ whenever -i
config/schedule.rb:13:in `block in initialize': uninitialized constant Whenever::JobList::ScheduleSendNotifications (NameError)
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?我应该使用其他东西吗?我只是学习ruby和rails所以非常感谢任何帮助.谢谢.