cs_EmailQueue_Failure///cs_Emails_Dequeue///cs_Emails_Enqueue
生活随笔
收集整理的這篇文章主要介紹了
cs_EmailQueue_Failure///cs_Emails_Dequeue///cs_Emails_Enqueue
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
cs_EmailQueue_Failure
ALTER??proc?dbo.cs_EmailQueue_Failure
????@EmailID?uniqueidentifier,
????@FailureInterval?int,
????@MaxNumberOfTries?int
as
SET?Transaction?Isolation?Level?Read?UNCOMMITTED
/**//*設(shè)置事務(wù)隔離級別,Read?UNCOMMITTED??執(zhí)行臟讀或?0?級隔離鎖定,這表示不發(fā)出共享鎖,
??也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對數(shù)據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更
??改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有
??語句中的所有表上設(shè)置?NOLOCK?相同。這是四個(gè)隔離級別中限制最小的級別。*/
declare?@NumberOfTries?int?--重試次數(shù)
select?@NumberOfTries?=?NumberOfTries?+?1?from?cs_EmailQueue?where?EmailID?=?@EmailID
if?@NumberOfTries?<=?@MaxNumberOfTries
begin?--如果重試次數(shù)小于最大次數(shù),更新重試次數(shù)和第二次重試次數(shù)
????update?cs_EmailQueue?set
????????NumberOfTries?=?@NumberOfTries,
????????NextTryTime?=?dateadd(minute,?@NumberOfTries?*?@FailureInterval,?getdate())
????where?EmailID?=?@EmailID
end
else
begin?--如果重試次數(shù)超過限制,刪除此條郵件
????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
/**//*設(shè)置事務(wù)隔離級別,Read?UNCOMMITTED??執(zhí)行臟讀或?0?級隔離鎖定,這表示不發(fā)出共享鎖,
??也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對數(shù)據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更
??改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有
??語句中的所有表上設(shè)置?NOLOCK?相同。這是四個(gè)隔離級別中限制最小的級別。*/
BEGIN
????SELECT?*?FROM?cs_EmailQueue?Where?SettingsID?=?@SettingsID?and?NextTryTime?<?getdate()
????
END
/**//*列出最后重試發(fā)送時(shí)間小于當(dāng)前時(shí)間的所有郵件*/
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
/**//*設(shè)置事務(wù)隔離級別,Read?UNCOMMITTED??執(zhí)行臟讀或?0?級隔離鎖定,這表示不發(fā)出共享鎖,
??也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對數(shù)據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更
??改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有
??語句中的所有表上設(shè)置?NOLOCK?相同。這是四個(gè)隔離級別中限制最小的級別。*/
BEGIN
????INSERT?INTO
????????cs_EmailQueue
????????(
????????????emailTo,
????????????emailCc,
????????????emailBcc,
????????????EmailFrom,
????????????EmailSubject,
????????????EmailBody,
????????????emailPriority,
????????????emailBodyFormat,
????????????SettingsID
????????)
????VALUES
????????(
????????????@EmailTo,
????????????@EmailCc,
????????????@EmailBcc,
????????????@EmailFrom,
????????????@EmailSubject,
????????????@EmailBody,
????????????@EmailPriority,
????????????@EmailBodyFormat,
????????????@SettingsID
????????)????
/**//*插入新的郵件到郵件隊(duì)列中*/????
END
GO
ALTER??proc?dbo.cs_EmailQueue_Failure
????@EmailID?uniqueidentifier,
????@FailureInterval?int,
????@MaxNumberOfTries?int
as
SET?Transaction?Isolation?Level?Read?UNCOMMITTED
/**//*設(shè)置事務(wù)隔離級別,Read?UNCOMMITTED??執(zhí)行臟讀或?0?級隔離鎖定,這表示不發(fā)出共享鎖,
??也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對數(shù)據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更
??改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有
??語句中的所有表上設(shè)置?NOLOCK?相同。這是四個(gè)隔離級別中限制最小的級別。*/
declare?@NumberOfTries?int?--重試次數(shù)
select?@NumberOfTries?=?NumberOfTries?+?1?from?cs_EmailQueue?where?EmailID?=?@EmailID
if?@NumberOfTries?<=?@MaxNumberOfTries
begin?--如果重試次數(shù)小于最大次數(shù),更新重試次數(shù)和第二次重試次數(shù)
????update?cs_EmailQueue?set
????????NumberOfTries?=?@NumberOfTries,
????????NextTryTime?=?dateadd(minute,?@NumberOfTries?*?@FailureInterval,?getdate())
????where?EmailID?=?@EmailID
end
else
begin?--如果重試次數(shù)超過限制,刪除此條郵件
????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
/**//*設(shè)置事務(wù)隔離級別,Read?UNCOMMITTED??執(zhí)行臟讀或?0?級隔離鎖定,這表示不發(fā)出共享鎖,
??也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對數(shù)據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更
??改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有
??語句中的所有表上設(shè)置?NOLOCK?相同。這是四個(gè)隔離級別中限制最小的級別。*/
BEGIN
????SELECT?*?FROM?cs_EmailQueue?Where?SettingsID?=?@SettingsID?and?NextTryTime?<?getdate()
????
END
/**//*列出最后重試發(fā)送時(shí)間小于當(dāng)前時(shí)間的所有郵件*/
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
/**//*設(shè)置事務(wù)隔離級別,Read?UNCOMMITTED??執(zhí)行臟讀或?0?級隔離鎖定,這表示不發(fā)出共享鎖,
??也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對數(shù)據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更
??改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有
??語句中的所有表上設(shè)置?NOLOCK?相同。這是四個(gè)隔離級別中限制最小的級別。*/
BEGIN
????INSERT?INTO
????????cs_EmailQueue
????????(
????????????emailTo,
????????????emailCc,
????????????emailBcc,
????????????EmailFrom,
????????????EmailSubject,
????????????EmailBody,
????????????emailPriority,
????????????emailBodyFormat,
????????????SettingsID
????????)
????VALUES
????????(
????????????@EmailTo,
????????????@EmailCc,
????????????@EmailBcc,
????????????@EmailFrom,
????????????@EmailSubject,
????????????@EmailBody,
????????????@EmailPriority,
????????????@EmailBodyFormat,
????????????@SettingsID
????????)????
/**//*插入新的郵件到郵件隊(duì)列中*/????
END
GO
轉(zhuǎn)載于:https://www.cnblogs.com/ruanbl/archive/2006/09/05/494905.html
總結(jié)
以上是生活随笔為你收集整理的cs_EmailQueue_Failure///cs_Emails_Dequeue///cs_Emails_Enqueue的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 首届世界CSS设计大赛结果揭晓
- 下一篇: 需求变更的处理