рдкреНрд░реАрдорд┐рдпрд░ рдбреЗрд╡рд▓рдкрд░ рд╕рд▓рд╛рд╣рдХрд╛рд░
рд░реИрдВрдбреА рдкреИрдЯрд░рд╕рди рдиреЗ .NET рдХреЛрд░ 3 рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рдирдИ рд╡рд░реНрдХрд░ рд╕реЗрд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд╛рднреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреАред
.NET рдХреЛрд░ 3 рдиреЗ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд┐рд╕реЗ рд╡рд░реНрдХрд░ рд╕рд░реНрд╡рд┐рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрдкрдХреЛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдХрдВрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╣реИред

рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рд▓рд╛рднреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди
рд╡рд░реНрдХрд░ рд╕рд░реНрд╡рд┐рд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЬреЗрдиреЗрд░рд┐рдХ рдХрдВрд╕реЛрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд▓рд╛рдн рд╣реИред
рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
Program.cs рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
ConfigureServices рд╡рд┐рдзрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ:
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddTransient<ICustomerService,CustomerService>(); services.AddHostedService<Worker>(); });
рд╡рд┐рдиреНрдпрд╛рд╕
ASP.NET Core рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд╕реЗрдЯрдЕрдк рдХреЛ рд╡рд░реНрдХрд░ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдкрд░рд┐рдЪрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рджреЗрддрд╛ рд╣реИ:
- appsettings.json
- appsettingsред {рдкрд░реНрдпрд╛рд╡рд░рдг} .json
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд╣рд╕реНрдп (рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП)
- рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░
- рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ
рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЛ
рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ
рдХрд░реЗрдВ ред
рд▓реЙрдЧрд┐рдВрдЧ
рдЗрд╕реА рддрд░рд╣, рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдПрдПрд╕рдкреА.рдиреЗрдЯ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрдЕрдк рд╕реЗ рдореЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рджрд╛рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рдХрдВрд╕реЛрд▓
- рдбрд┐рдмрдЧ
- рдШрдЯрдирд╛ рд╕реНрд░реЛрдд
- EventLog (рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЪрд▓рдиреЗ рдкрд░)
рдЖрдк
Program.cs рдореЗрдВ
рд╣реЛрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddConsole(); });
рд▓реЙрдЧрд┐рдВрдЧ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ ASP.NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП
рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред
рд╡рд░реНрдХрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреНрд▓рд╛рд╕
рдЕрдВрдд рдореЗрдВ,
Worker.cs рдлрд╝рд╛рдЗрд▓ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдкрдХрд╛ рдХреЛрдб рдореМрдЬреВрдж рд╣реЛрдЧрд╛ред рдмреЗрд╕ рдХреНрд▓рд╛рд╕
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕рд░реНрд╡рд┐рд╕ рд╕реЗ 3 рдУрд╡рд░рд░рд┐рдПрдб рдореЗрдердб рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдореЗрдВ рдмрд╛рдБрдзрддреЗ рд╣реИрдВ:
ExecuteAsync - рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐ред рдпрджрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреА рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
StartAsync - рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд┐рдзрд┐, рдЬрд┐рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рд╣реЛрдиреЗ рдкрд░, рд╕реЗрд╡рд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдПрдХ-рдмрд╛рд░ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
StopAsync - рдПрдХ рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдЬрд┐рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд┐рдкрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИред
рд╕рд╛рд░рд╛рдВрд╢
.NET рдХреЛрд░ 3 рдореЗрдВ рдирдпрд╛ рд╡рд░реНрдХрд░ рд╕рд░реНрд╡рд┐рд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕, рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрди рд▓рд╛рднреЛрдВ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд░реНрдХрд░ рд╕реЗрд╡рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣рдореЗрдВ ASP.NET рдХреЛрд░ рдФрд░ рдХрдВрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд╛рддрд╛рд╡рд░рдг рджреЗрддрд╛ рд╣реИред