コード例 #1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            try
            {
                while (!stoppingToken.IsCancellationRequested)
                {
                    //if (await IsAllow())
                    //{
                    var tasks = new List <Task>();

                    foreach (var folder in _options.CurrentValue.Folders)
                    {
                        if (await IsAllow(folder))
                        {
                            var t = Task.Run(async() =>
                            {
                                try
                                {
                                    var appsetting = _options.CurrentValue.AppSettings.FirstOrDefault(x => x.IdAppSetting == folder.IdAppSetting);
                                    IAzureBlobHelper _azureBlobHelper = new AzureBlobHelper(appsetting, folder);
                                    await _azureBlobHelper.Compare();
                                }
                                catch (Exception e)
                                {
                                    NLogManager.PublishException(e);
                                }
                            });

                            tasks.Add(t);

                            await Task.WhenAll(tasks);

                            //await WriteLog("LastRunTime", DateTime.Now.ToString());

                            //}
                            _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
                            await new MainUtility().WriteLastRunTime("appsettings", DateTime.Now.ToString(), folder);
                            //await Task.Delay( 10000, stoppingToken);
                        }
                    }
                    // sau timerRun phút sẽ chạy lại 1 lần
                }
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }
            //new TransferWorker.Utility.MainUtility().Write("appsettings", DateTime.Now.ToString());
            //new TransferWorker.Utility.MainUtility().LoadLog();
            //new TransferWorker.Utility.SendMail().kk();
            // var con = _appSettings.StorageConnectionString;
            // await _azureBlobHelper.UploadFile();


            //Authenticate and create a data factory management client
            //var context = new AuthenticationContext("https://login.windows.net/" + tenantID);
            //ClientCredential cc = new ClientCredential(applicationId, authenticationKey);
            //AuthenticationResult result = context.AcquireTokenAsync("https://management.azure.com/", cc).Result;
            //ServiceClientCredentials cred = new TokenCredentials(result.AccessToken);
            //var client = new DataFactoryManagementClient(cred) { SubscriptionId = subscriptionId };
        }