Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 时间调度算法_Node.js_Algorithm - Fatal编程技术网

Node.js 时间调度算法

Node.js 时间调度算法,node.js,algorithm,Node.js,Algorithm,一段时间以来,我一直在尝试解决一个我曾经使用过的应用程序的调度问题。这个问题如下 第一次填充列表时: 将查看用户在联系人列表中设置为“活动”的所有联系人 对于每个人,应查看他们选择的联系频率(例如x天、x周、x月) 将他们的“最后联系日期”与今天的日期进行比较。对于这些日期之间的差异大于其指定联系频率的任何联系人,此人是要添加到代理列表中的候选人 人员在代理列表中的出现顺序应遵守以下规则: 最后一个联系人之间间隔最长的联系人在列表中的位置较高 标记为收藏夹的联系人将显示在列表的顶部 isA

一段时间以来,我一直在尝试解决一个我曾经使用过的应用程序的调度问题。这个问题如下

第一次填充列表时:

  • 将查看用户在联系人列表中设置为“活动”的所有联系人
  • 对于每个人,应查看他们选择的联系频率(例如x天、x周、x月)
  • 将他们的“最后联系日期”与今天的日期进行比较。对于这些日期之间的差异大于其指定联系频率的任何联系人,此人是要添加到代理列表中的候选人
人员在代理列表中的出现顺序应遵守以下规则:

  • 最后一个联系人之间间隔最长的联系人在列表中的位置较高
  • 标记为收藏夹的联系人将显示在列表的顶部
  • isApp用户优先
从这个“候选者”列表中,算法还应该检查每个人的联系历史。对于具有以下指定联系人频率的联系人,请遵循以下规则

  • 每x天–不考虑历史记录。只要在过期时加上就行了
  • 每x周–如果在过去3天内已经联系过,请不要显示,并跳到下次联系
  • 每x个月一次–如果在过去7天内已经联系过,则不显示,并跳到下次联系
  • 每x年–如果在上个月联系,则不显示,并跳到下一次联系

创建包含所有联系人的数据集阵列。为联系人添加过滤器,例如“活动”。为联系人设置根据间隙区分的时段。创建一个默认类别并添加其中的所有联系人,这样您就可以迭代跳过过去7天左右的联系人。一旦有了默认阵列,您就可以创建另一个具有所需功能的列表。在这种情况下,相同的列表将使用四个条件进行处理,如最后4行中所需的条件。此解决方案适用于任何平台。一旦有了代码,就可以应用预构建算法。您可以使用来优化您的逻辑。希望这有帮助。如果没有,请粘贴您的代码。

听起来像是“为我做了一些工作”。您了解最后的条件吗?是的,我了解,并且在满足上述条件后,您也将能够计算出来。首先要解决一些可以解决的问题。最后一个也没什么不同