異常:::「名稱爲'RemoteServer'的調度程序已經存在。」Quartz Scheduling Client Server
我正在使用單例模式。並嘗試不同的方式,但是當我一次調用它時執行得很好,我的工作執行得很好。但是當我安排第二次工作時,通過例外我陷入了這個問題。 「 」名稱爲「RemoteServer」的調度程序已存在。「 客戶端代碼::
public void SchedulenewAlert()
{
try
{
NameValueCollection properties = new NameValueCollection();
properties["quartz.scheduler.instanceName"] = "RemoteClient";
properties["quartz.scheduler.instanceId"] = "AUTO";
// set thread pool info
properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool,Quartz";
properties["quartz.threadPool.threadCount"] = "5";
properties["quartz.threadPool.threadPriority"] = "Normal";
// set remoting expoter
properties["quartz.scheduler.proxy"] = "true";
properties["quartz.scheduler.proxy.address"] = "tcp://10.0.0.46:555/QuartzScheduler";/QuartzScheduler";
// First we must get a reference to a scheduler
ISchedulerFactory sf = new StdSchedulerFactory(properties);
IScheduler sched = sf.GetScheduler();
String jobname = "remotelyAddedJob2" + DateTime.Now.Ticks.ToString();
IJobDetail job = JobBuilder.Create<MyTest>()
.WithIdentity(jobname, "default1")
.Build();
JobDataMap map = job.JobDataMap;
map.Put("msg", "Your remotely added job has executed!");
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("remotelyAddedTrigger", "default")
.ForJob(job.Key)
.WithCronSchedule("/5 * * ? * *")
.Build();
var TestTrigger = TriggerBuilder.Create().ForJob(job).WithIdentity("remotelyAddedTrigger2", "default1")
.StartNow().Build();
DateTimeOffset pullReportsToQueuejobCalendar = DateBuilder.DateOf(9, 30, 17, 1, 6, 2005);
string trgName = "pullReportsFromQueuejobTrigger" + DateTime.Now.Ticks.ToString();
var pullReportsToQueuejobTrigger = new CalendarIntervalTriggerImpl
{
StartTimeUtc = pullReportsToQueuejobCalendar,
Name = trgName,
RepeatIntervalUnit = IntervalUnit.Second,
RepeatInterval = 40000 // every --- seconds
};
/// while (true)
// {
// schedule the job
sched.ScheduleJob(job, pullReportsToQueuejobTrigger);
}
catch (Exception ex)
{
string lines = "==================Exception Client===========================\n" + DateTime.Now.TimeOfDay.ToString() + "\n====================END=========================\n";
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\ExceptionClient.txt", true);
file.WriteLine(lines);
file.Close();
}
///}
}
============================ 服務器職位代碼....
public virtual void Execute(IJobExecutionContext context)
{
// This job simply prints out its job name and the
// date and time that it is running
try
{
string lines = "==================StartClient===========================\n"
+ DateTime.Now.TimeOfDay.ToString() + "\n====================END=========================\n";
System.IO.StreamWriter file = new System.IO.StreamWriter("d:\\testClient.txt", true);
file.WriteLine(lines);
file.Close();
}
catch(Exception ex)
{
string lines = "==================Exception at Client Calling===========================\n"
+ DateTime.Now.TimeOfDay.ToString() + "\n====================END=========================\n";
System.IO.StreamWriter file = new System.IO.StreamWriter("d:\\testExceptionClient.txt", true);
file.WriteLine(lines);
file.WriteLine("EXception........... <<<< Message "+ex.Message);
file.Close();
}
}
我已解決它只是訪問修改問題:) – 2014-09-30 07:57:00