首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用java应用程序运行后台进程

使用java应用程序运行后台进程
EN

Stack Overflow用户
提问于 2018-09-25 07:35:14
回答 1查看 59关注 0票数 0

所以我有这个映射,它有一个员工的名字和他们的代金券金额,作为它的键和值。

现在,我希望在每个新月的第一天将一个特定的金额添加到值中。

我有一个可以做到这一点的工作代码,但我正在寻找一种方法来使其更好

代码语言:javascript
复制
import java.time.LocalDateTime;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class VoucherManager {
    private static double newVoucher = 2500.00;
    private Map<String, Double> employeeVoucher = new TreeMap<>();
    private  LocalDateTime now = LocalDateTime.now();

    public static VoucherManager getInstance() {
        return new VoucherManager();
    }
    public void incrementVoucher() {
        employeeVoucher.put("Olatunji Oniyide", 200.00);
        employeeVoucher.put("Andrew Mbata", 500.00);
        employeeVoucher.put("Opeyemi Oniyide", 700.00);

        Set<Map.Entry<String, Double>> set = employeeVoucher.entrySet();
        int day = now.getDayOfMonth();
        if((day == 1) || (day == 2)) {
            for(Map.Entry<String, Double> map : set)
               System.out.println(map.getKey() + ":" + (map.getValue() + newVoucher));
        } else {
            throw new AssertionError();
        }
    }

    public static void main(String[] args) {
        VoucherManager voucher = VoucherManager.getInstance();
        voucher.incrementVoucher();
    }
    }

当我将系统上的当前日期更改为新月的第一天时,它会正确地完成工作,否则就不会。

但只有当用户在每月的第一天或第二天运行代码时,才会发生这种情况。当用户在每月的第三天或第四天运行代码时,它会抛出一个错误。

所以我想问,是否有一种方法可以让我的应用程序创建一个后台进程,即使在应用程序不使用的情况下,也可以使用新的数字自动更新值。

EN

回答 1

Stack Overflow用户

发布于 2018-09-25 07:48:15

您可以通过几种不同的方法来完成此操作:

  • 计算已过去的月数,并将其乘以每月增量值。
  • 另一种选择是将值存储在轻量级数据库(如H2sqlite)中,并根据需要使用计划作业进行更新。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52488668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档