我们目前正在寻找一个调度应用程序来集成到我们的解决方案中。我们非常接近锁定 Quartz.net,但有一个交易破坏者我在 Stackoverflow 或 Google 上都找不到任何解决方案。
问题在于通过 API 进行远程访问,例如:
NameValueCollection properties = new NameValueCollection();
properties["quartz.scheduler.instanceName"] = "instanceName";
properties["quartz.scheduler.proxy"] = "true";
properties["quartz.scheduler.proxy.address"] = "tcp://localhost:555/QuartzScheduler";
ISchedulerFactory sf = new StdSchedulerFactory(properties);
IScheduler sched = sf.GetScheduler();
我们目前了解到,任何用户都可以使用与上述类似的代码,然后使用调度程序实例来管理/更改/添加作业等。问题是,我们需要限制这种访问(作为运行它的用户上下文可以访问敏感信息)。
在我们的理想情况下,我们希望锁定对指定用户的远程访问。这将允许授权用户从界面管理 Quartz。如果这是不可能的,那么我们将寻求一种解决方案,在不破坏从同一台机器访问 API 的能力的情况下锁定远程访问(缺点是用户需要登录服务器来管理石英)。
如果我们是第一个有这个要求的组织,我会很惊讶,其他人是如何解决这个问题的?