schangxiang@126.com
2024-12-19 4422008672f79f74841e11f20430c5e76686e293
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.TaskScheduler;
 
namespace iWare.Wms.Application
{
    /// <summary>
    /// 定时任务demo
    /// </summary>
    public class SpareTimeDemo : ISpareTimeWorker
    {
        /// <summary>
        /// 3秒后出勤统计
        /// </summary>
        /// <param name="timer">参数</param>
        /// <param name="count">次数</param>
        [SpareTime(3000, "执行Sql", DoOnce = true, StartNow = true, ExecuteType = SpareTimeExecuteTypes.Serial)]
        public void ExecSql(SpareTimer timer, long count)
        {
            //创建作用域
            Scoped.Create((factory, scope) =>
            {
                var start = DateTime.Now;
                Console.WriteLine(start.ToString("yyyy-MM-dd HH:mm:ss") + ":任务开始-----------");
                var services = scope.ServiceProvider;
                // 数据库操作
                var db = Db.GetSqlRepository(services);
                if (!string.IsNullOrEmpty(timer.Description)) //假设 后台任务 中把 sql 语句写到了备注里面
                    db.SqlNonQuery(timer.Description);
                var end = DateTime.Now;
                Console.WriteLine(end.ToString("yyyy-MM-dd HH:mm:ss") + ":任务结束-----------");
                Console.WriteLine($"SQL执行了:{count} 次,耗时:{(end - start).TotalMilliseconds}ms");
            });
        }
    }
}