我想创建一个循环队列,对于向服务器发出的每个请求,队列中的新值将被发送,然后移动到队列的后面。
但是我有一个可能不起作用的实现,请参阅下文:
系统是带有单个get(GetValue)的web api(ASP.net Core 2),这应该返回从队列中拉出的简单字符串;
我将所有值保存在本地SQLite数据库中,该数据库由后台进程填充,后台进程从外部源获取所有值;
我最初的想法是拥有一个包含这些字段的数据库:
public int Id { get; set; }
//Value that will be sent via get
public string Value { get; set; }
//How many time this value was sent (Would increment every time the value is selected to be sent)
public int Requests { get; set; }
//When was the last time the value was sent
public DateTime LastRequested { get; set; }
//When was it loaded to the local database from external source
public DateTime Added { get; set; }
//If value is active
public bool IsActive { get; set; }
然后进行查询以选择应该发送的值,例如
valuesList.Where(x => x.isActive == true).OrderByDesc(x => x.LastRequested)
但是新值具有更高的优先级,并且应该在查询中排名更高的3个选项和每次一些
有关如何解决此问题的任何建议?