Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Oracle中多次(并行)执行同一作业?_C#_.net_Oracle_Email_Job Scheduling - Fatal编程技术网

C# 如何在Oracle中多次(并行)执行同一作业?

C# 如何在Oracle中多次(并行)执行同一作业?,c#,.net,oracle,email,job-scheduling,C#,.net,Oracle,Email,Job Scheduling,我在后端使用DBMS_调度程序安排了一个作业(用于发送电子邮件)。然而,一个要求是允许用户安排电子邮件,以及允许他们点击按钮立即发送电子邮件 为了实现这一点,我做了如下安排:当用户单击按钮时,调用一个过程。该过程执行我上面提到的作业(使用run_job)。这使我可以使用同一个作业立即发送电子邮件,也可以在以后的预定时间发送电子邮件 我现在面临的问题是:假设用户A单击按钮。同时,用户B点击他系统上的按钮。然后用户B收到以下错误消息:作业已在运行 如何在Oracle中多次(并行)执行同一作业?将参数

我在后端使用DBMS_调度程序安排了一个作业(用于发送电子邮件)。然而,一个要求是允许用户安排电子邮件,以及允许他们点击按钮立即发送电子邮件

为了实现这一点,我做了如下安排:当用户单击按钮时,调用一个过程。该过程执行我上面提到的作业(使用run_job)。这使我可以使用同一个作业立即发送电子邮件,也可以在以后的预定时间发送电子邮件

我现在面临的问题是:假设用户A单击按钮。同时,用户B点击他系统上的按钮。然后用户B收到以下错误消息:作业已在运行

如何在Oracle中多次(并行)执行同一作业?

将参数
USE\u CURRENT\u SESSION
设置为
TRUE

--创建一个测试作业。
开始
dbms_调度程序。创建_作业(
作业名称=>“测试作业”,
作业类型=>PLSQL\U块,
job_action=>“开始dbms_lock.sleep(3);结束;”);
结束;
/
--如果同时运行,则会失败。
开始
dbms_调度程序。运行_作业(作业名称=>TEST_作业,使用当前会话=>FALSE);
结束;
/
--这可以同时运行。
开始
dbms_调度程序。运行_作业(作业名称=>TEST_作业,使用当前会话=>TRUE);
结束;
/

如果可以将作业转换为基于事件的作业,则可以使用轻量级作业来响应触发它们的事件。对于基于事件的作业,可以将parallel_instances设置为true,从而允许同一作业的多个实例并行运行

这是做你想做的事的方法


轻量级并行作业是指具有简单任务的短期工作。

非常感谢!我要试试这个!但是你能告诉我“使用当前会话”是如何工作的吗?@SinghSiddharth文档是一个很好的开始: