C# NET4.5 以上 HangFire异步框架使用

文章描述了一个Web应用中使用Hangfire框架进行定时任务调度,包括支付结算、虚拟账户管理、交易记录统计等功能的代码片段。涉及的任务有同步支付分摊账单、批量开户、订单统计等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using Hangfire;
using Microsoft.Owin;
using Owin;
using System;

[assembly: OwinStartup(typeof(SmartPal.Web.Startup))]
namespace SmartPal.Web
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            try
            {
                ConfigureAuth(app);
#if !DEBUG
                app.UseHangfireDashboard("/hangfire", new DashboardOptions
                {
                    DisplayStorageConnectionString = false
                });
                RecurringJob.AddOrUpdate<HangFire.Job>(job => job.SyncPayShareBill(), "0 30 10 * * ? ", TimeZoneInfo.Local);
#endif
                /// <summary>
                /// 批量同步开户(凌晨:02:30:00)
                /// </summary>
                RecurringJob.AddOrUpdate<HangFire.Job>(job => job.SyncCreateVirtual(), "0 30 2 * * ? ", TimeZoneInfo.Local);

                /// <summary>
                /// 间接统计每个商户7天订单交易记录金额总合计(凌晨:01:30:00)
                /// </summary>
                RecurringJob.AddOrUpdate<HangFire.Job>(job => job.SetUserTransRecord(), "0 30 1 * * ? ", TimeZoneInfo.Local);


                /// <summary>
                ///使用老版虚拟户来批量创建丰付前置系统开户及换卡功能 (Hangfire任务)(凌晨:05:01:00)
                /// </summary>
                //RecurringJob.AddOrUpdate<HangFire.Job>(job => job.TaskSyncVirtualAccount(), "0 01 5 * * ? ", TimeZoneInfo.Local);
            }
            catch (Exception ex)
            {
                SmartPalJK.Infrastructure.Context.Logger.Error(String.Format("{0}", ex.Message));
            }
        }
    }
}

using Hangfire;
using SmartPalJK.Core.Models;
using SmartPalJK.Core.Services;
using SmartPalJK.Core.Services.JiuKa;
using SmartPalJK.Core.Services.JiuKa.Model;
using System;

namespace SmartPal.Web.HangFire
{
    public class Job
    {
        public void SyncPayShareBill()
        {
            JiuKaService.SyncEncashPayShareBills(DateTime.Now);
        }
        public void SyncPayShareBillDT(DateTime dt)
        {
            JiuKaService.SyncEncashPayShareBills(dt);
        }

        /// <summary>
        /// 批量同步开户
        /// </summary>
        public void SyncCreateVirtual()
        {
            VirtualService.BusinessVirtualAccount(0,0);
        }

        /// <summary>
        /// 批量同步润物开户状态
        /// </summary>
        public void SyncRuiWuVirtualStatus()
        {
            VirtualService.BusinessVirtualRuiWuAccount(0);
        }


        /// <summary>
        /// 间接统计每个商户7天订单交易记录金额总合计
        /// </summary>
        public void SetUserTransRecord()
        {
            MerchantService.SetUserSevenTransMoney();
        }


        /// <summary>
        /// 使用老版虚拟户来批量创建丰付前置系统开户及换卡功能(Hangfire任务)
        /// </summary>
        public void TaskSyncVirtualAccount()
        {
            VirtualService.TaskSyncVirtualAccount((int)ChanneEnum.FengFuSignSystem);
        }



        /// <summary>
        /// 提交分账任务
        /// </summary>
        /// <param name="encashCollectPayShareId"></param>
        public void ApplyWithdraw(string encashCollectPayShareId)
        {
            var model = EncashCollectPayShareService.Find(encashCollectPayShareId);
            var data = JiuKaService.ApplyWithdraw(model.Id, model.Amount, model.MerId.ToString());
            if (data.Code == Code.Success)//该返回结果表示  提交成功
            {
                model.Status = SmartPalJK.Core.Models.ENCASH_STATUS.ThirdProcessing;
                //加入异步查询任务
                BackgroundJob.Schedule<Job>(jo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值