【发布时间】:2019-02-22 09:05:14
【问题描述】:
我想在 java 中运行一个向用户发送通知电子邮件的方法。但是如何告诉程序“如果变量的值在过去 24 小时内没有改变,则运行该方法”?
【问题讨论】:
-
您可以每 15 分钟运行一次 cronjob,检查变量是否已更改。可能有多种解决方案,在谷歌上你肯定会找到一个解决方案。
我想在 java 中运行一个向用户发送通知电子邮件的方法。但是如何告诉程序“如果变量的值在过去 24 小时内没有改变,则运行该方法”?
【问题讨论】:
简单:为此编写代码。你需要什么:
class Person { String lastName ... ... 直接在 Person 对象的字段上跟踪更改是不可能的。换句话说:您需要编写自己的代码,告诉“更新键 X 的值”......每当发生这种情况时,您都会存储更改的时间戳。最简单的方法:使用存储该时间戳的 setter() 方法。但这个想法无法扩展,并且会导致糟糕的设计。并提示:鉴于您的问题非常广泛且不具体,不要指望更具体的答案(甚至代码)会回来。
【讨论】:
简短的回答:你不能。您可以做的是保存变量值的副本,并安排定期执行任务,将变量的值与您保存的值进行比较,如果不同则调用方法,然后保存新值。
更新
在交换 cmets 之后,我会指出,如果您可以控制对变量的分配(例如,如果该变量有一个 setter,并且您可以更改那个二传手),在这种情况下,我宁愿推荐一个像 GhostCat 发布的解决方案。
【讨论】: