blob: 64362fb315776b0ce6dac66975b7d172be93badf [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" class="js csstransforms3d">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="generator" content="Hugo 0.70.0" />
<meta name="description" content="">
<meta name="buildDate" content="2020-10-19 15:08:01">
<link rel="shortcut icon" href="https://shardingsphere.apache.org/elasticjob/images/favicon.png" type="image/x-icon" />
<title>Deploy Guide :: ElasticJob</title>
<link href="https://shardingsphere.apache.org/elasticjob/current/css/nucleus.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/font-awesome.min.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/hybrid.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/featherlight.min.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/perfect-scrollbar.min.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/auto-complete.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/theme.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/hugo-theme.css?1603091281" rel="stylesheet">
<link href="https://shardingsphere.apache.org/elasticjob/current/css/theme-black.css?1603091281" rel="stylesheet">
<script src="https://shardingsphere.apache.org/elasticjob/current/js/jquery-2.x.min.js?1603091281"></script>
<style type="text/css">
:root #header + #content > #left > #rlblock_left{
display:none !important;
}
</style>
</head>
<body class="" data-url="/en/user-manual/elasticjob-cloud/operation/deploy-guide/">
<nav id="sidebar" class="">
<div id="header-wrapper">
<div id="header">
<img src="https://shardingsphere.apache.org/elasticjob/current/img/elasticjob.png" />
</div>
</div>
<div class="highlightable">
<ul class="topics">
<li data-nav-id="/en/overview/" title="Overview" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/overview/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
</i>
<b>1. </b>Overview
</a>
</li>
<li data-nav-id="/en/quick-start/" title="Quick Start" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/quick-start/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>2. </b>Quick Start
</a>
<ul>
<li data-nav-id="/en/quick-start/elasticjob-lite/" title="ElasticJob-Lite" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/quick-start/elasticjob-lite/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>2.1. </b>ElasticJob-Lite
</a>
</li>
<li data-nav-id="/en/quick-start/elasticjob-cloud/" title="ElasticJob-Cloud" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/quick-start/elasticjob-cloud/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>2.2. </b>ElasticJob-Cloud
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/features/" title="Concepts &amp; Features" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/features/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>3. </b>Concepts &amp; Features
</a>
<ul>
<li data-nav-id="/en/features/schedule-model/" title="Schedule Model" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/features/schedule-model/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>3.1. </b>Schedule Model
</a>
</li>
<li data-nav-id="/en/features/elastic/" title="Elastic Schedule" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/features/elastic/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>3.2. </b>Elastic Schedule
</a>
</li>
<li data-nav-id="/en/features/resource/" title="Resource Assign" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/features/resource/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>3.3. </b>Resource Assign
</a>
</li>
<li data-nav-id="/en/features/failover/" title="Failover" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/features/failover/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>3.4. </b>Failover
</a>
</li>
<li data-nav-id="/en/features/misfire/" title="Misfire" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/features/misfire/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>3.5. </b>Misfire
</a>
</li>
<li data-nav-id="/en/features/job-type/" title="Job Open Ecosystem" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/features/job-type/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>3.6. </b>Job Open Ecosystem
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/" title="User Manual" class="dd-item
parent
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4. </b>User Manual
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/" title="ElasticJob-Lite" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4.1. </b>ElasticJob-Lite
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/" title="Usage" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4.1.1 </b>Usage
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-api/" title="Job API" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-api/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
Job API
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-api/job-interface/" title="Job Development" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-api/job-interface/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Job Development
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-api/java-api/" title="Use Java API" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-api/java-api/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Java API
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-api/spring-boot-starter/" title="Use Spring Boot Starter" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-api/spring-boot-starter/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Spring Boot Starter
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-api/spring-namespace/" title="Use Spring Namespace" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-api/spring-namespace/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Spring Namespace
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-listener/" title="Job Listener" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-listener/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
Job Listener
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-listener/listener-interface/" title="Listener Development" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-listener/listener-interface/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Listener Development
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-listener/java-api/" title="Use Java API" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-listener/java-api/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Java API
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/job-listener/spring-namespace/" title="Use Spring Namespace" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/job-listener/spring-namespace/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Spring Namespace
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/event-trace/" title="Event Trace" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/event-trace/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
Event Trace
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/event-trace/java-api/" title="Use Java API" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/event-trace/java-api/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Java API
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/event-trace/spring-boot-starter/" title="Use Spring Boot Starter" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/event-trace/spring-boot-starter/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Spring Boot Starter
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/event-trace/spring-namespace/" title="Use Spring Namespace" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/event-trace/spring-namespace/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Use Spring Namespace
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/event-trace/table-structure/" title="Table Structure" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/event-trace/table-structure/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Table Structure
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/usage/operation-api/" title="Operation API" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/usage/operation-api/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
</i>
Operation API
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/" title="Configuration" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4.1.2 </b>Configuration
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/java-api/" title="Java API" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/java-api/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Java API
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/spring-boot-starter/" title="Spring Boot Starter" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/spring-boot-starter/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Spring Boot Starter
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/spring-namespace/" title="Spring Namespace" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/spring-namespace/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Spring Namespace
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/built-in-strategy/" title="Built-in Strategy" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/built-in-strategy/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
Built-in Strategy
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/built-in-strategy/sharding/" title="Job Sharding Strategy" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/built-in-strategy/sharding/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Job Sharding Strategy
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/built-in-strategy/thread-pool/" title="Thread Pool Strategy" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/built-in-strategy/thread-pool/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Thread Pool Strategy
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/built-in-strategy/error-handler/" title="Error Handler Strategy" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/built-in-strategy/error-handler/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Error Handler Strategy
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/configuration/props/" title="Job Properties" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/configuration/props/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Job Properties
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/operation/" title="Operation" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/operation/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4.1.3 </b>Operation
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-lite/operation/deploy-guide/" title="Deploy Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/operation/deploy-guide/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Deploy Guide
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/operation/dump/" title="Dump Job Information" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/operation/dump/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Dump Job Information
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/operation/execution-monitor/" title="Execution Monitor" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/operation/execution-monitor/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Execution Monitor
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-lite/operation/web-console/" title="Console" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-lite/operation/web-console/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Console
</a>
</li>
</ul>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-cloud/" title="ElasticJob-Cloud" class="dd-item
parent
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4.2. </b>ElasticJob-Cloud
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-cloud/usage/" title="Usage" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/usage/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4.2.1. </b>Usage
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-cloud/usage/dev-guide/" title="Dev Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/usage/dev-guide/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Dev Guide
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-cloud/usage/local-executor/" title="Local Executor" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/usage/local-executor/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Local Executor
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/user-manual/elasticjob-cloud/configuration/" title="Configuration" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/configuration/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
</i>
<b>4.2.2. </b>Configuration
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-cloud/operation/" title="Operation" class="dd-item
parent
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/operation/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>4.2.3. </b>Operation
</a>
<ul>
<li data-nav-id="/en/user-manual/elasticjob-cloud/operation/deploy-guide/" title="Deploy Guide" class="dd-item active">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/operation/deploy-guide/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Deploy Guide
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-cloud/operation/high-availability/" title="High Available" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/operation/high-availability/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
High Available
</a>
</li>
<li data-nav-id="/en/user-manual/elasticjob-cloud/operation/web-console/" title="Console" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/operation/web-console/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
Console
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li data-nav-id="/en/dev-manual/" title="Dev Manual" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/dev-manual/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg class="icon icon-down"
style="display: none;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path>
</svg>
<svg class="icon icon-right"
style="display: inline-block;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777">
<path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path>
</svg>
</i>
<b>5. </b>Dev Manual
</a>
<ul>
<li data-nav-id="/en/dev-manual/sharding/" title="Job Sharding Strategy" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/dev-manual/sharding/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>5.1. </b>Job Sharding Strategy
</a>
</li>
<li data-nav-id="/en/dev-manual/thread-pool/" title="Thread Pool Strategy" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/dev-manual/thread-pool/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>5.2. </b>Thread Pool Strategy
</a>
</li>
<li data-nav-id="/en/dev-manual/error-handler/" title="Error Handler" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/dev-manual/error-handler/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>5.3. </b>Error Handler
</a>
</li>
<li data-nav-id="/en/dev-manual/job-class-provider/" title="Job Class Name Provider" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/dev-manual/job-class-provider/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>5.4. </b>Job Class Name Provider
</a>
</li>
<li data-nav-id="/en/dev-manual/roadmap/" title="Roadmap" class="dd-item ">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/dev-manual/roadmap/">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
<b>5.5. </b>Roadmap
</a>
</li>
</ul>
</li>
<li data-nav-id="/en/downloads/" title="Downloads" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/downloads/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
</i>
<b>6. </b>Downloads
</a>
</li>
<li data-nav-id="/en/powered-by/" title="Powered By" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/powered-by/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
</i>
<b>7. </b>Powered By
</a>
</li>
<li data-nav-id="/en/faq/" title="FAQ" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/faq/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
</i>
<b>8. </b>FAQ
</a>
</li>
<li data-nav-id="/en/blog/" title="Blog" class="dd-item
">
<a href="https://shardingsphere.apache.org/elasticjob/current/en/blog/">
<i class="collapse" style="display:inline; font-family:'courier';">
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg>
</i>
<b>9. </b>Blog
</a>
</li>
</ul>
<section id="prefooter">
<hr/>
<ul>
<li>
<a class="padding">
<i class="fa fa-fw fa-language"></i>
<div class="select-style">
<select id="select-language" onchange="location = this.value;">
<option id="en" value="/elasticjob/current/en/user-manual/elasticjob-cloud/operation/deploy-guide/" selected>English</option>
<option id="cn" value="/elasticjob/current/cn/user-manual/elasticjob-cloud/operation/deploy-guide/">简体中文</option>
</select>
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="255px" height="255px" viewBox="0 0 255 255" style="enable-background:new 0 0 255 255;" xml:space="preserve">
<g>
<g id="arrow-drop-down">
<polygon points="0,63.75 127.5,191.25 255,63.75 " />
</g>
</g>
</svg>
</div>
</a>
</li>
</ul>
</section>
<hr />
<a class="padding" href="https://shardingsphere.apache.org/pdf/shardingsphere-elasticjob_docs_en.pdf">
<i class="fa fa-fw fa-file-pdf-o" ></i>&nbsp;Download PDF&nbsp;&nbsp;
</a>
<section id="footer">
<p></p>
</section>
</div>
</nav>
<section id="body">
<div id="overlay"></div>
<div class="padding highlightable">
<div>
<div id="top-bar">
<div id="top-github-link">
<a class="github-link" title='Edit this page' href="https://github.com/apache/shardingsphere/tree/master/docs/document/content/user-manual/elasticjob-cloud/operation/deploy-guide.en.md" target="blank">
<i class="fa fa-code-fork"></i>
<span id="top-github-link-text">Edit this page</span>
</a>
</div>
<div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" data-sidebar-toggle="">
<i class="fa fa-bars"></i>
</a>
</span>
<span class="links">
<a href='https://shardingsphere.apache.org/elasticjob/current/en/'>ElasticJob</a> > <a href='https://shardingsphere.apache.org/elasticjob/current/en/user-manual/'>User Manual</a> > <a href='https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/'>ElasticJob-Cloud</a> > <a href='https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/operation/'>Operation</a> > Deploy Guide
</span>
</div>
</div>
</div>
<div id="chapter">
<div id="body-inner">
<nav id="TableOfContents">
<ul>
<li><a href="#scheduler-deployment-steps">Scheduler deployment steps</a></li>
<li><a href="#job-deployment-steps">Job deployment steps</a></li>
<li><a href="#scheduler-configuration-steps">Scheduler configuration steps</a></li>
</ul>
</nav>
<h2 id="scheduler-deployment-steps">Scheduler deployment steps</h2>
<ol>
<li>Start ElasticJob-Cloud-Scheduler and Mesos, and specify ZooKeeper as the registry.</li>
<li>Start Mesos Master and Mesos Agent.</li>
<li>Unzip <code>elasticjob-cloud-scheduler-${version}.tar.gz</code>.</li>
<li>Run <code>bin\start.sh</code> to start ElasticJob-Cloud-Scheduler.</li>
</ol>
<h2 id="job-deployment-steps">Job deployment steps</h2>
<ol>
<li>Ensure that ZooKeeper, Mesos Master/Agent and ElasticJob-Cloud-Scheduler have been started correctly.</li>
<li>Place the tar.gz file of the packaging job in a network accessible location, such as ftp or http. The <code>main</code> method in the packaged tar.gz file needs to call the <code>JobBootstrap.execute</code> method provided by ElasticJob-Cloud.</li>
<li>Use curl command to call RESTful API to publish applications and register jobs. For details: <a href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/configuration">Configuration</a></li>
</ol>
<h2 id="scheduler-configuration-steps">Scheduler configuration steps</h2>
<p>Modify the <code>conf\elasticjob-cloud-scheduler.properties</code> to change the system configuration.</p>
<p>Configuration description:</p>
<table>
<thead>
<tr>
<th>Attribute Name</th>
<th align="left">Required</th>
<th align="left">Default</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>hostname</td>
<td align="left">yes</td>
<td align="left"></td>
<td align="left">The real IP or hostname of the server, cannot be 127.0.0.1 or localhost</td>
</tr>
<tr>
<td>user</td>
<td align="left">no</td>
<td align="left"></td>
<td align="left">User name used by Mesos framework</td>
</tr>
<tr>
<td>mesos_url</td>
<td align="left">yes</td>
<td align="left">zk://127.0.0.1:2181/mesos</td>
<td align="left">Zookeeper url used by Mesos</td>
</tr>
<tr>
<td>zk_servers</td>
<td align="left">yes</td>
<td align="left">127.0.0.1:2181</td>
<td align="left">Zookeeper address used by ElasticJob-Cloud</td>
</tr>
<tr>
<td>zk_namespace</td>
<td align="left">no</td>
<td align="left">elasticjob-cloud</td>
<td align="left">Zookeeper namespace used by ElasticJob-Cloud</td>
</tr>
<tr>
<td>zk_digest</td>
<td align="left">no</td>
<td align="left"></td>
<td align="left">Zookeeper digest used by ElasticJob-Cloud</td>
</tr>
<tr>
<td>http_port</td>
<td align="left">yes</td>
<td align="left">8899</td>
<td align="left">Port used by RESTful API</td>
</tr>
<tr>
<td>job_state_queue_size</td>
<td align="left">yes</td>
<td align="left">10000</td>
<td align="left">The maximum value of the accumulation job, the accumulation job exceeding this threshold will be discarded. Too large value may cause ZooKeeper to become unresponsive, and should be adjusted according to the actual measurement</td>
</tr>
<tr>
<td>event_trace_rdb_driver</td>
<td align="left">no</td>
<td align="left"></td>
<td align="left">Driver of Job event tracking database</td>
</tr>
<tr>
<td>event_trace_rdb_url</td>
<td align="left">no</td>
<td align="left"></td>
<td align="left">Url of Job event tracking database</td>
</tr>
<tr>
<td>event_trace_rdb_username</td>
<td align="left">no</td>
<td align="left"></td>
<td align="left">Username of Job event tracking database</td>
</tr>
<tr>
<td>event_trace_rdb_password</td>
<td align="left">no</td>
<td align="left"></td>
<td align="left">Password of Job event tracking database</td>
</tr>
</tbody>
</table>
<hr>
<ul>
<li>Stop: No stop script is provided, you can directly use the kill command to terminate the process.</li>
</ul>
<footer class=" footline" >
</footer>
</div>
</div>
</div>
<div id="navigation">
<a class="nav nav-prev" href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/operation/" title="Operation"> <i class="fa fa-chevron-left"></i></a>
<a class="nav nav-next" href="https://shardingsphere.apache.org/elasticjob/current/en/user-manual/elasticjob-cloud/operation/high-availability/" title="High Available" style="margin-right: 0px;"><i class="fa fa-chevron-right"></i></a>
</div>
</section>
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/clipboard.min.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/perfect-scrollbar.min.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/perfect-scrollbar.jquery.min.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/jquery.sticky.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/featherlight.min.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/html5shiv-printshiv.min.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/highlight.pack.js?1603091281"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/modernizr.custom.71422.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/learn.js?1603091281"></script>
<script src="https://shardingsphere.apache.org/elasticjob/current/js/hugo-learn.js?1603091281"></script>
</body>
</html>