18.定时任务

一、概述

实现 IBackgroundWorker 接口,继承 BackgroundWorkerBase 或PeriodicBackgroundWorkerBase

二、使用

2.1 定义

public class MakeInactiveUsersPassiveWorker : PeriodicBackgroundWorkerBase, ISingletonDependency
{
private readonly IRepository<User, long> _userRepository;
public MakeInactiveUsersPassiveWorker(AbpTimer timer, IRepository<User, long> userRepository)
: base(timer)
{
    _userRepository = userRepository;
    Timer.Period = 5000; //5 seconds (good for tests, but normally will be more)
}
[UnitOfWork]
protected override void DoWork()
{
    using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MayHaveTenant))
    {
        var oneMonthAgo = Clock.Now.Subtract(TimeSpan.FromDays(30));
        var inactiveUsers = _userRepository.GetAllList(u =>
                                        u.IsActive &&);
        foreach (var inactiveUser in inactiveUsers)
        {
              inactiveUser.IsActive = false;
        );
    } 
    CurrentUnitOfWork.SaveChanges();
  }
}

2.2 注册

public class MyProjectWebModule : AbpModule
{
//...
public override void PostInitialize()
{
    var workManager = IocManager.Resolve<IBackgroundWorkerManager>();
    workManager.Add(IocManager.Resolve<MakeInactiveUsersPassiveWorker>());
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,714评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 刚出大学那会,看了一本书《穷爸爸富爸爸:财务自由之路》,书中介绍财富自由的四大象限。 强调财富自由是做管道,让钱去...
    杜子期阅读 189评论 0 3
  • 宁宁姥爷阅读 144评论 0 1
  • 类似的字还有很多,比如“字”、“言”、“衷”、“宋”等等等等。 2,清代的著名书法家黄自元的间架结构九十二法中的第...
    一只笨蛋阅读 885评论 3 11