问题描述
sql :- 我们启用了服务代理,创建了自定义队列、服务和消息类型。 表上用于更新的触发器将一条消息添加到此队列中。
.net 核心
在启动班我们有
public Startup(IConfiguration configuration)
{
Configuration = configuration;
string connectionString = "XXXX";
System.Data.sqlClient.sqlDependency.Start(connectionString,"SBReceiveQueue");
}
在我们的数据层 :-
using (sqlConnection connection = new sqlConnection(connectionString))
{
try
{
connection.open();
string query = @"SELECT XXXXXXX";
using (sqlCommand command = new sqlCommand(query,connection))
{
command.CommandType = CommandType.Text;
DataTable dt = new DataTable();
sqlDependency dependency = new sqlDependency(command,"Service=SBSendService;local database=xxx",Int32.MaxValue);
dependency.OnChange += new OnChangeEventHandler(Dependency_OnChange1);
if (connection.State == ConnectionState.Closed)
{
connection.open();
}
var reader = command.ExecuteReader();
while (reader.Read())
{
message = reader[0].ToString();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
当一个项目第一次进入队列时,我们的事件被触发,没有问题。将项目直接放入队列后,该事件需要大约 60 秒才能再次触发。失去了想法,为什么在定义的消息队列上会有这样的延迟?任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)