zoukankan
html css js c++ java
cs_EmailQueue_Failure///cs_Emails_Dequeue///cs_Emails_Enqueue
cs_EmailQueue_Failure
ALTER
proc
dbo.cs_EmailQueue_Failure
@EmailID
uniqueidentifier
,
@FailureInterval
int
,
@MaxNumberOfTries
int
as
SET
Transaction
Isolation
Level
Read
UNCOMMITTED
/**/
/*
设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/
declare
@NumberOfTries
int
--
重试次数
select
@NumberOfTries
=
NumberOfTries
+
1
from
cs_EmailQueue
where
EmailID
=
@EmailID
if
@NumberOfTries
<=
@MaxNumberOfTries
begin
--
如果重试次数小于最大次数,更新重试次数和第二次重试次数
update
cs_EmailQueue
set
NumberOfTries
=
@NumberOfTries
,
NextTryTime
=
dateadd
(minute,
@NumberOfTries
*
@FailureInterval
,
getdate
())
where
EmailID
=
@EmailID
end
else
begin
--
如果重试次数超过限制,删除此条邮件
delete
from
cs_EmailQueue
where
EmailID
=
@EmailID
end
GO
cs_Emails_Dequeue
ALTER
PROCEDURE
[
dbo
]
.cs_Emails_Dequeue
(
@SettingsID
int
)
AS
SET
Transaction
Isolation
Level
Read
UNCOMMITTED
/**/
/*
设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/
BEGIN
SELECT
*
FROM
cs_EmailQueue
Where
SettingsID
=
@SettingsID
and
NextTryTime
<
getdate
()
END
/**/
/*
列出最后重试发送时间小于当前时间的所有邮件
*/
GO
cs_Emails_Enqueue
ALTER
PROCEDURE
[
dbo
]
.cs_Emails_Enqueue
(
@EmailTo
nvarchar
(
2000
),
@EmailCc
ntext
,
@EmailBcc
ntext
,
@EmailFrom
nvarchar
(
256
),
@EmailSubject
nvarchar
(
1024
),
@EmailBody
ntext
,
@EmailPriority
int
,
@EmailBodyFormat
int
,
@SettingsID
int
)
AS
SET
Transaction
Isolation
Level
Read
UNCOMMITTED
/**/
/*
设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/
BEGIN
INSERT
INTO
cs_EmailQueue
(
emailTo,
emailCc,
emailBcc,
EmailFrom,
EmailSubject,
EmailBody,
emailPriority,
emailBodyFormat,
SettingsID
)
VALUES
(
@EmailTo
,
@EmailCc
,
@EmailBcc
,
@EmailFrom
,
@EmailSubject
,
@EmailBody
,
@EmailPriority
,
@EmailBodyFormat
,
@SettingsID
)
/**/
/*
插入新的邮件到邮件队列中
*/
END
GO
查看全文
相关阅读:
第三个Sprint冲刺第三天
回答第1-17章
阅读第13-17章
阅读第10、11、12章
阅读第8,9,10章
作业5.2 5.3
四则运算 测试与封装 5.1
阅读第5-7章
阅读1-5章
我给队友做的汉堡包
原文地址:https://www.cnblogs.com/ruanbl/p/494905.html
最新文章
软件工程时间进度表
软件工程回顾与总结
操作系统实验4
职业道德素养
《构建之法》8,9,10章读后感和总结
操作系统实验三进程调度
团队以及读后感想
团队合作2.0
操作系统实验二 作业调度
作品评价
热门文章
结队2.0
SpringBoot-简单实例
html之间传递参数
Jquery获取和修改img的src值的方法
[Intellij IDEA]_eclipse项目导入
基于Spring3 MVC实现基于form表单文件上传
推广App篇
第三个Sprint冲刺总结
第三个Sprint冲刺第八天
第三个Sprint冲刺第六天
Copyright © 2011-2022 走看看