我在Azure存储中有一个队列,例如'messages'.每隔1小时,一些服务会向此队列推送一些应该更新数据的消息.但是,在某些情况下,我也从另一个地方推送到此队列消息,我希望此消息立即进行,我无法为此消息设置优先级.
这个问题的最佳解决方案是什么?我可以使用两个不同的队列("消息"和"消息优先级"),还是一个糟糕的方法?
我需要写一些通用的搜索方法,如下所示:
public List<T> Search<T>(SearchParamsBase searchParams)
{
using (var context = new TestEntities())
{
var dataType = TypeMap.Get(typeof (T));
var dataSet = context.Set(dataType);
var searchQuery = CreateQuery((IEnumerable<object>) dataSet), searchParams)
return searchQuery.ToList()
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个CreateQuery()应该过滤IEnumerable对象的函数.所有类别的此功能都不同.例如:
CreateQuery(IEnumerable<object> collection, SearchParamsBase searchParams)
{
var search = (SomeSearchImplementation)searchParams;
// filter
collection = collection.Where(x => x.Name == search.Name);
// select page
collection = collection.Skip(search.Page * search.CountPerPage);
collection = collection.Take(search.CountPerPage);
// order by and so on
// ...
return collection;
}
Run Code Online (Sandbox Code Playgroud)
我该如何正确实现这个想法?