毎日スケジュールされたバックアップサーバのクラウドデータベースのバックアップを使用してnetcore Topshelf

序文

  企業は、オフサイトのバックアップ、ディザスタリカバリサーバなので、地元のバークラウドへのデータベース・サーバまで定期的にする必要性を増やす必要があります

 

一番上の棚

  netcoreインストールサービスメソッドの勝利のマシンはTopshelf使用中の唯一の企業は現在、ここで、レコードがたくさんあります

  

PM>インストール・パッケージTopshelf

 試運転段階のスタートアップファイルのプログラムIは、サービスをインストールされていません。

静的な無効メイン(文字列[] args)
        { 
            Console.WriteLineを( "自动备份云服务器数据库!"); 

            VAR isService =(Debugger.IsAttached || args.Contains( " -コンソール"))!。

            // VARビルダー= CreateWebHostBuilder(!。args.Where)(引数=>引数= "--console"てToArray()); 
            VARの設定=新しいConfigurationBuilder()
                     .SetBasePath(Directory.GetCurrentDirectory())
                     .AddJsonFile( "研究会/ appsettings.json"、オプション:真、reloadOnChange:真)
                     .Build(); 
            IF(isService)
            { 

                HostFactory.Run(X => 
                { 
                    x.Service <
                    x.RunAsLocalSystem(); 
                    x.SetDescription( "自动备份"); 
                    x.SetDisplayName( "自动备份"); 
                    x.SetServiceName( "自动备份"); 

                    x.EnablePauseAndContinue(); 
                }); 
            } 
            { 
                // ILoggerRepositoryリポジトリ= LogManager.CreateRepository( "NETCoreRepository")。
                //XmlConfigurator.Configure(repository、新FileInfo(Directory.GetCurrentDirectory()+ "\\カンファレンス\\ log4net.config")); 

                CreateHostBuilder(引数).Build()を実行します()。
            } 
        }

IWebhostスタートアップ上昇注入と使用

IServiceCollection => services.AddDispatch(); 
IApplicationBuilder => UseDispatch();

 スタート

 

 

 

 

 

 

実行アドレスは、同じアドレスに反射し、XML設定仕事です

 

 

 すぐにそれを実行してみてください

 

 

 

 

 

 

 

私の仕事コード

 

パブリッククラスBakJob:IJob 
    { 
        パブリックタスク実行(IJobExecutionContextコンテキスト)
        { 

            VAR BASEURL = "HTTP:// {你的服务器} /xxx/xxx.zip"。
            新しいWebクライアント{} .DownloadFile(BASEURL、 "bak.zip")。


            Task.CompletedTaskを返します。
        } 
    }

  

 OK

 

だから私はどのように対処するこのジョブを注入したいです

ここでの名前を変更するには何のファイル名のURLアドレスと他の構成例を再定義するために、構成ファイルを使用します

 

    public class BakJob : IJob
    {
        public TestBakConfig testBakConfig;

        public BakJob(IOptions<TestBakConfig> options)
        {
            testBakConfig = options.Value;
        }

        public Task Execute(IJobExecutionContext context)
        {

            var BaseUrl = "http://xxx/xx/xx";
            new WebClient { }.DownloadFile(BaseUrl, testBakConfig.FullName+".zip");


            return Task.CompletedTask;
        }
    }

  

注:Job 必须 需要先注入工厂才能使用注入的  我这边 WooDispatch 替我处理了

 

 

 

 OK

  源码示例

おすすめ

転載: www.cnblogs.com/leoxjy/p/12097064.html