Windows Azure WebJobs рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ

рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рд╡реЗрдмрдЬреЙрдмреНрд╕, рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рд╡реЗрдм рд╕рд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╣рд╛рдБ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк Windows Azure рдкреНрд░рдмрдВрдзрди рдкреЛрд░реНрдЯрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдирдпрд╛ WebJob рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ WebJob рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ - ftp / git / WebDeployред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдкрдХреЗ рдПрдЬрд╝реНрдпреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╡реЗрдмрдЬреЙрдмреНрд╕ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ рдФрд░ рдЖрдк рдПрдХ рдирдпрд╛ рд╡реЗрдмрдЬреЙрдм рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


WebJobs рдХрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ?


WebJobs рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИрдВ:
site \ wwwroot \ App_Data \ jobs \ {job type} \ {job name}

рдЬрд╣рд╛рдВ {рдЬреЙрдм рдЯрд╛рдЗрдк} рдпрд╛ рддреЛ рд▓рдЧрд╛рддрд╛рд░ рд╡реЗрдмрдЬреЛрдм рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЯреНрд░рд┐рдЧрд░ рдкрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ (рдбрд┐рдорд╛рдВрдб рдкрд░ рдпрд╛ рд╢реЗрдбреНрдпреВрд▓ рдкрд░) рдЙрдирдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред
{job name} рдЖрдкрдХреЗ рд╡реЗрдмрдЬреЙрдмреНрд╕ рдХрд╛ рдирд╛рдо рд╣реИ

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдирд┐рд░рдВрддрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╡реЗрдмрдЬреЛрдм рдЬрд┐рд╕рдХрд╛ рдирд╛рдо myjob рд╣реИ, рдореЗрдВ рд░рд╣реЗрдЧрд╛
рд╕рд╛рдЗрдЯ \ wwwroot \ App_Data \ jobs \ рд╕рддрдд \ myjob

WebJob рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?


рдПрдХ WebJob рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╕реЗ рд▓реЗрдХрд░ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЗрд╕рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ WebJob рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреА рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
  1. рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ (.exe / .cmd / .bat)
  2. рдмреИрд╢ (.sh)
  3. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (.js for node.js)
  4. PHP (.php)
  5. рдЕрдЬрдЧрд░ (.py)


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд░рди рдирд╛рдо рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬреА рдЬрд╛рддреА рд╣реИред {рд╕рдорд░реНрдерд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди} (рдкрд╣рд▓реЗ рд╡рд╛рд▓рд╛ рдЬреАрддрд╛ рд╣реБрдЖ рдкрд╛рдпрд╛ рдЧрдпрд╛)
  2. рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рд╕рдорд░реНрдерд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬреА рдЬрд╛рддреА рд╣реИ
  3. рдпрджрд┐ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡реЗрдмрдЬреЛрдм рдкреНрд░рд╢рдВрд╕рдиреАрдп рдирд╣реАрдВ рд╣реИ


рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдЗрдВрдЬрди рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдФрд░ рдЬреЛ рдЗрд╕ рд╕рдордп рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ run.cmd рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдБ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, powerhell -Command run.ps )

рд╡реЗрдмрдЬреЛрдм рдХреА рддреИрдирд╛рддреА


рддреЛ, рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡реЗрдмрдЬреЛрдм рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рдпрдЬреЛрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ рд╡рд╣ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрдирд╛ рд╣реИред

рдПрдлрд╝рдЯреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ (рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдорд░реНрдерд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓) рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред рддрдм WebJob рдЕрдкрдиреЗ рдЖрдк рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред

рд╡реЗрдмрд╕рд╛рдЗрдЯ + рд╡реЗрдмрдЬреЙрдмреНрд╕ рддреИрдирд╛рддреА


WebJobs рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ WebJob рдХреЛ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рддреИрдирд╛рдд рдХрд░реЗрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, WebJob рдХреЗ рд╕рд╛рде n.js рдкрд░ рдирд┐рдореНрди рд╕рд╛рдЗрдЯ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
./server.js
./App_Data/jobs/continuous/myjob/run.cmd

рдЬрдмрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдпреЗ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдпрд╣ рдПрдХ рд╡реЗрдмрдЬреЙрдм-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реИ рдФрд░ рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - ftp / WebDeploy / git / ...

рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрджреНрдпрддрди


рд▓рдЧрд╛рддрд╛рд░ рдЪрд▓ рд░рд╣реЗ рд╡реЗрдмрдЬреЙрдм ( рдирд┐рд░рдВрддрд░ ) - рдЬрдм рдЖрдк рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдирдпрд╛ рд╡реЗрдмрдЬреЛрдм рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рдирдИ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЯреНрд░рд┐рдЧрд░ - рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрджреНрдпрддрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реЗ WebJob рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд▓рд╛ рд▓реЙрдиреНрдЪ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛

рдиреЛрдЯ: рд╡реЗрдмрдЬреЙрдм рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдХреА рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рд▓реЙрдХрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдбрд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рддреИрдирд╛рдд рд╡реЗрдмрдЬреЙрдм рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗрдВред

рдЯреНрд░рд┐рдЧрд░ рд╡реЗрдмрдЬреЗрдм рдХреЗ рд▓рд┐рдП рдХреИрд╡реЗрдЯ


рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдЖрддреА рд╣реИ рдЬрдм рдЗрд╕ рддрд░рд╣ рд╕реЗ WebJob рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдСрди-рдбрд┐рдорд╛рдВрдб WebJob рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рдмрдВрдзрди рдкреЛрд░реНрдЯрд▓ рдореЗрдВ RUN ONCE рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╢реЗрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдЖрд╡рд╢реНрдпрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рд╢реЗрдбреНрдпреВрд▓ рд╡реЗрдмрдЬреЛрдм рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рддреИрдирд╛рддреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВред

Source: https://habr.com/ru/post/In212765/


All Articles