我们可以设定一个sqlserver的job执行失败后,隔多长时间再重复执行。
以下是一个job调用的存储过程中的一段代码, 当遇到第一种情况"1.未找到web文件",假定这个错误可以自动修复。我们可以通知其它作业去执行相关任务(如重新下载web网页), 然后让job报错,根据你上面的设置, job隔一定的时间会再次运行(比如web下载完成之后),达到了自动修复错误的目的。
(当然如果是第2种情况,估计让job重复执行也是无效滴)
-- 判断是否解析成功: 0,正常; 1,未找到合格的待解析(web)文件; 2,解析参数有误
if (@i_result > 0)
begin
select @str_log = sysmessage
from t_sys_message(nolock) where msgid = @i_result;
set @str_log = @str_log + @str_webfilepath;
exec p_base_writelog @@procid, 1,'Parser',@str_log;
if (@i_result = 1 )
begin
--重新下载网页
execute p_job_download_web 'stockbillsize';
--通知作业报错
raiserror ('error: no web to be parse.', -- message text.
16, -- severity.
1 -- state.
);
end
return 1; --退出
end