public IHttpActionResult StartTenantTask(WeiChat_SyncTypes type) { var tenantId = TenantId; var userId = UserId; var paramStr = tenantId + ";" + userId; WeiChatApplicationContext.Current.TaskManager.Start(type.ToString(), paramStr, new Site_Notify() { CreateBy = UserId, CreateTime = DateTime.Now, IconCls = "fa fa-circle-o", UpdateTime = DateTime.Now, IsTaskFinish = false, Receiver = "Tenant_" + tenantId, }); return(Ok()); }
/// <summary> /// 触发同步 /// </summary> /// <param name="syncType">同步类型</param> /// <param name="isUserSync">是否手动触发,为true必定触发全量同步,false会根据时间选择性触发</param> /// <param name="createBy">创建人</param> /// <returns>是否同步成功</returns> public async Task <bool> Sync(WeiChat_SyncTypes syncType, bool isUserSync = false, string createBy = null) { if (!isUserSync) { //默认间距6小时以上才进行同步 var lastTime = DateTime.Now.AddHours(6); if (_db.WeiChat_SyncLogs.Any(p => (p.Type == syncType) && (p.CreateTime < lastTime))) { return(await System.Threading.Tasks.Task.FromResult(false)); } } //TODO:封装通用的同步方法 switch (syncType) { case WeiChat_SyncTypes.Sync_WeiChat_User: await SyncWeChatUsers(isUserSync, createBy); break; case WeiChat_SyncTypes.Sync_MKF: await SyncWeChatMKF(isUserSync, createBy); break; case WeiChat_SyncTypes.Sync_Images: break; case WeiChat_SyncTypes.Sync_WeiChat_UserGroup: await SyncWeChatGroups(isUserSync, createBy); break; case WeiChat_SyncTypes.Sync_MessagesTemplates: await SyncTemplateMessages(isUserSync, createBy); break; default: break; } return(await System.Threading.Tasks.Task.FromResult(true)); }