--- title: "Submit an Instant Job to the Job Pool" url: https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/submit-instant-job/ description: "Learn about working with Catalyst Job Scheduling that provides components for you to schedule and execute jobs to trigger Job Functions, Webhooks, Circuits, or AppSail services." last_updated: 2026-08-28T06:26:16Z service: Job Scheduling type: general related_links: - name: "Job Pool Documentation" url: /en/job-scheduling/help/jobpool/introduction/ - name: "Avoid Dispatch Delays When Executing Jobs" url: /en/job-scheduling/help/jobpool/key-concepts/#ideal-memory-allocation-to-avoid-dispatch-delay - name: "Setting Application Alerts in a Job Pool" url: /en/job-scheduling/help/implementation/create-app-alert/ - name: "AppSail Help Documentation" url: /en/serverless/help/appsail/introduction/ - name: "Circuits Help Documentation" url: /en/serverless/help/circuits/introduction/ - name: "Job Function Help Documentation" url: /en/serverless/help/functions/job-functions/ - name: "Java SDK" url: /en/sdk/java/v1/job-scheduling/overview/ - name: "Node.js SDK" url: /en/sdk/nodejs/v2/job-scheduling/overview/ - name: "Python SDK" url: /en/sdk/python/v1/job-scheduling/overview/ - name: "Job Scheduling REST APIs" url: /en/api/code-reference/job-scheduling/jobpool/get-all-jobpool/#GetAllJobPools --- # Submit an Instant Job to the Job Pool You can submit an instant job to the Job Pool from two sections in the console: * From the Job Pool component [section](https://docs.catalyst.zoho.com/en/job-scheduling/help/jobpool/introduction/) * From the Jobs component [section](https://docs.catalyst.zoho.com/en/job-scheduling/help/job/introduction/) In this help documentation, we are going to go over the steps required to submit an instant job using the *Job Pool* component section. For steps on submitting a job to the job pool using the *Jobs* component section, visit this [help documentation](https://docs.catalyst.zoho.com/en/job-scheduling/help/implementation/submit-jobs-using-jobs/). To submit a job to the job pool: **Submit a Function Job** ### Submit an Instant Job to the Function Job Pool 1. Choose the required job pool from the **Job Pool** section. ![catalyst_job_scheduling_func_jp_select](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_func_jp_select.webp) 2. Click the **Jobs** tab. ![catalyst_job_scheduling_func_jp_jobs_hihg](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_func_jp_jobs_hihg.webp) 3. Click **Create Job**. ![catalyst_job_scheduling_func_sub_job_create_job](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_func_sub_job_create_job.webp) 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in [Java](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/), [Node.js](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) and [Python](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/). The SDK snippets can also be copied from the console. **Using the Builder** 5. Provide a name for your job in the **Job Name** input field. ![catalyst_job_scheduling_submit_jp_func_job_name](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_submit_jp_func_job_name.webp) 6. Select the required [Job Function](https://docs.catalyst.zoho.com/en/serverless/help/functions/job-functions/) you wish to trigger from the **Target Function** drop-down. ![catalyst_job_scheduling_create_job_select_func_drop_empty](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_create_job_select_func_drop_empty.webp) - If you have not created a Job Function, click **Create New**. ![catalyst_job_scheduling_submit_job_func_cre_fun_serverless](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_submit_job_func_cre_fun_serverless.webp) You will be directed to the [*Catalyst Serverless*](https://docs.catalyst.zoho.com/en/serverless/) service to create your *Job Function*. Steps to create Job Functions using this section are available in this [help section](https://docs.catalyst.zoho.com/en/serverless/help/functions/implementation/#create-a-function). > **Note:** If you have [initialized a Job Function](https://docs.catalyst.zoho.com/en/cli/v1/initialize-resources/initialize-functions/) from the CLI, ensure you [deploy](https://docs.catalyst.zoho.com/en/cli/v1/deploy-resources/deploy-options/#--only-lttargetsgt) it to the Catalyst console for the function to be listed in the drop-down. - Once you create your Job Function, navigate back to the *Job Scheduling* service and select it from the drop-down. ![catalyst_job_scheduling_sub_job_func_sel_job_func](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_sub_job_func_sel_job_func.webp) 7. You can also enable the toggle present in the pop up to pass **Query Parameters** to your *Job Function* when the job triggers the function. ![catalyst_job_scheduling_sub_job_func_query_params](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_sub_job_func_query_params.webp) > **Note: Query Parameters** are custom parameters that you can pass to your *Job Function*. They are passed in a **user-defined format**, and you customize the parameter value and include any terms that you require to be passed in the parameter. 8. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. ![catalyst_job_scheduling_sub_job_func_retry_option](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_sub_job_func_retry_option.webp) 9. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. ![catalyst_job_scheduling_func_job_retry_option_interval_drop](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_func_job_retry_option_interval_drop.webp) > **Note:** The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of **10 retries** with a minimum retry interval of **1 minute** and a maximum retry interval of **24Hrs**. 10. Click **Create** ![catalyst_job_scheduling_func_sub_jp_job_submitted](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_func_sub_jp_job_submitted.webp) Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. ![catalyst_job_scheduling_func_sub_jp_job_submitted_definition](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_func_sub_jp_job_submitted_definition.webp) The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in [DevOps's Logs](https://docs.catalyst.zoho.com/en/devops/help/logs/introduction/) component by clicking the **View Logs** button. **Using Catalyst SDK** 5. Click the **SDK** tab. ![catalyst_job_scheduling_sdk_sub_jp_func_sdk](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_sdk_sub_jp_func_sdk.webp) Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. **Java** **Java SDK to Submit a Function Job** ```java // FUNCTION JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the function job pool named test // generate function job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.functionJobBuilder() // get function job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_function") // set target function's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target function's Id (optional) (either TargetName or TargetId is mandatory) .setParams(new JSONObject() { { put("arg1", "job"); put("arg2", "test"); } }) // set params to be passed to target function (optional) .setJobName("job_name") // set job name .build(); // build job meta // submit function job ZCJobDetails functionJob = jobpool.submitJob(jobMeta); ``` **Node.js** **Node.js SDK to Submit a Function Job** ```javascript // FUNCTION JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the function job pool named test // create function job const functionJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Function', // set the target type as Function for function jobs target_name: 'target_function', // set the target function's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target functions's Id (optional) (either target_id or target_name is mandatory) params: { arg1: 'test', arg2: 'job' }, // set params to be passed to target function (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); ``` **Python** **Python SDK to Submit a Function Job** ```python # FUNCTION JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the function jobpool named test # create function job function_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Function', # set the target type as Function for function jobs 'target_name': 'target_function', # set the target function's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target functions's Id (optional) (either target_id or target_name is mandatory) 'params': { 'arg1': 'test', 'arg2': 'job' }, # set params to be passed to target function (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) ``` These SDKs will also be available in these sections: * [Java SDK](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/) * [Node.js SDK](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) * [Python SDK](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/) 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. **Submit a Webhook Job** ### Submit an Instant Job to the Webhook Job Pool 1. Choose the required job pool from the **Job Pool** section. ![catalyst_job_scheduling_jp_webhook_job_sub_start](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_webhook_job_sub_start.webp) 2. Click the **Jobs** tab. ![catalyst_job_scheduling_circuit_jp_job_sel](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circuit_jp_job_sel.webp) 3. Click **Create Job**. ![catalyst_job_scheduling_webhook_jp_sub_jobs_create](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_webhook_jp_sub_jobs_create.webp) 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in [Java](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/), [Node.js](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) and [Python](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/). The SDK snippets can also be copied from the console. **Using the Builder** 5. Provide a name for your job in the **Job Name** input field. ![catalyst_job_scheduling_webhook_jp_create_job_sub](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_webhook_jp_create_job_sub.webp) 6. Enter the complete URL of the webhook you wish to trigger in the input field and select the **Request Method** from the drop-down. ![catalyst_job_scheduling_jp_webhook_reqmeth_url](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_webhook_reqmeth_url.webp) The URL input field and the **Preview URL** will be populated automatically once you input the URL. > **Note:** * It is vital you enter the complete URL of the webhook you are required to trigger. * You can trigger any third-party URL using this job pool. 7. You can provide **Headers & Value** in a key-value pair format. You can also provide **Params** in a key-value pair format by enabling the **Query Parameters** toggle. ![catalyst_job_scheduling_jp_webhook_job_sub_params](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_webhook_job_sub_params.webp) You can verify your *Query Params*, as the **Preview URL** section gets populated automatically when you input them. > **Note: Query Parameters** are custom parameters that you can pass to your *Job Function*. They are passed in a **user-defined format**, and you customize the parameter value and include any terms that you require to be passed in the parameter. 8. You can provide the required data as a JSON key-value pair in the **Request Body** section. ![catalyst_job_scheduling_jp_webhook_req_body](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_webhook_req_body.webp) 9. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. ![catalyst_job_scheduling_jp_sub_webhook_jp_retries](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_sub_webhook_jp_retries.webp) > **Note:** The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of **10 retries** with a minimum retry interval of **1 minute** and a maximum retry interval of **24Hrs**. 10. Click **Create**, after confirming your configurations. ![catalyst_job_scheduling_jp_sub_webhook_jp_confirm_create](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_sub_webhook_jp_confirm_create.webp) Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. ![catalyst_job_scheduling_jp_webhook_job_submit_done](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_webhook_job_submit_done.webp) The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in [DevOps's Logs](https://docs.catalyst.zoho.com/en/devops/help/logs/introduction/) component by clicking the **View Logs** button. **Using Catalyst SDK** 5. Click the **SDK** tab. ![catalyst_job_scheduling_webhook_jp_sub_sdk](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_webhook_jp_sub_sdk.webp) Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. **Java** **Java SDK to Submit a Webhook Job** ```java // WEB HOOK JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the webhook job pool named test // generate webhook job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.webhookJobBuilder() // create webhook job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setRequestMethod("POST") // set webhook request's method .setUrl("https://catalyst.zoho.com") // set webhook request's url .setParams(new JSONObject() { { put("arg1", "test"); put("arg2", "job"); } }) // set the webhook request's query params (optional) .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the webhook request's headers (optional) .setRequestBody("test_request") // set the webhook request's body (optional) .setJobName("test_job") // set job name .build(); // build webhook job meta // submit webhook job ZCJobDetails webHookJob = jobpool.submitJob(jobMeta); ``` **Node.js** **Node.js SDK to Submit a Webhook Job** ```javascript // WEBHOOK JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the webhook job pool named test // create webhook job const webhookJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Webhook', // set the target type as Webhook for webhook jobs request_method: 'POST', // set the webhook request's method url: 'https://catalyst.zoho.com', // set the webhook request's url params: { arg1: 'test', arg2: 'job' }, // set the webhook request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the webhook request's headers (optional) request_body: 'test_request', // set the webhook request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); ``` **Python** **Python SDK to Submit a Webhook Job** ```python # WEBHOOK JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the webhook jobpool named test # create webhook job webhook_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Webhook', # set the target type as Webhook for webhook jobs 'request_method': 'POST', # set the webhook request's method 'url': 'https://catalyst.zoho.com', # set the webhook request's url 'params': { 'arg1': 'test', 'arg2': 'job' }, # set the webhook request's query params (optional) 'headers': { 'IS_TEST_REQUEST': 'true' }, # set the webhook request's headers (optional) 'request_body': 'test_request', # set the webhook request's body (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) ``` These SDKs will also be available in these sections: * [Java SDK](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/) * [Node.js SDK](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) * [Python SDK](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/) 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. **Submit a Circuit Job** ### Submit an Instant Job to the Circuit Job Pool > **Note:** The Circuits component is currently not available to Catalyst users accessing from the EU, AU, IN, or CA data centers. Hence, users from these DCs will not be able to trigger Circuits using the Job Scheduling service. 1. Choose the required job pool from the **Job Pool** section. ![catalyst_job_scheduling_select_circuit_jp](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_select_circuit_jp.webp) 2. Click the **Jobs** tab. ![catalyst_job_scheduling_circuit_jp_job_sel](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circuit_jp_job_sel.webp) 3. Click **Create Job**. ![catalyst_job_scheduling_circuit_jp_sub_jobs_create](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circuit_jp_sub_jobs_create.webp) 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in [Java](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/), [Node.js](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) and [Python](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/). The SDK snippets can also be copied from the console. **Using the Builder** 5. Provide a name for your job in the **Job Name** input field. ![catalyst_job_scheduling_circuit_jp_create_job_sub](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circuit_jp_create_job_sub.webp) 6. Choose your required Circuit from the **Target Circuit** drop-down. ![catalyst_job_scheduling_circuit_sub_jp_choose_circuit](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circuit_sub_jp_choose_circuit.webp) > **Note:** * It is vital you create the required circuit, and [deploy all the functions](https://docs.catalyst.zoho.com/en/cli/v1/deploy-resources/deploy-options/#--only-lttargetsgt) required by the circuit to the console. The circuit needs to be ready and functioning, to ensure that when the job is executed in the job pool it triggers the circuit, and the required workflow is executed. * If you have not created a circuit yet, click the **Create New** option in the drop-down. You will be directed to the [Catalyst Serverless](https://docs.catalyst.zoho.com/en/serverless/) console, where you can engineer a new circuit. * You can find the steps to create a **Catalyst Circuit** from this [help documentation](https://docs.catalyst.zoho.com/en/serverless/help/circuits/implementation/#create-a-circuit). 7. Enter the **JSON Input** for the Circuit. ![catalyst_job_scheduling_circuits_jp_sub_json_keys](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circuits_jp_sub_json_keys.webp) > **Note:** You can learn more about providing **JSON Inputs to a Circuit** from this [help documentation](https://docs.catalyst.zoho.com/en/serverless/help/circuits/implementation/#execute-a-circuit). 8. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. ![catalyst_job_scheduling_circ_jp_sub_retry_options](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circ_jp_sub_retry_options.webp) 9. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. ![catalyst_job_scheduling_circ_jp_sub_configure_retry](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circ_jp_sub_configure_retry.webp) > **Note:** The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of **10 retries** with a minimum retry interval of **1 minute** and a maximum retry interval of **24Hrs**. 10. Click **Create** ![catalyst_job_scheduling_circ_jp_sub_job_submit](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circ_jp_sub_job_submit.webp) Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. ![catalyst_job_scheduling_circ_jp_job_def_high](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circ_jp_job_def_high.webp) The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in [DevOps's Logs](https://docs.catalyst.zoho.com/en/devops/help/logs/introduction/) component by clicking the **View Logs** button. **Using Catalyst SDK** 5. Click the **SDK** tab. ![catalyst_job_scheduling_circ_jp_sub_sdk](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_circ_jp_sub_sdk.webp) Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. **Java** **Java SDK to Submit a Circuit Job** ```java // CIRCUIT JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the circuit job pool named test // generate circuit job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.circuitJobBuilder() // create circuit job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("target_circuit") // set target circuits's name (optional) (either TargetName or TargetId is mandatory) // .setTargetId(1234567890L) // set the target circuits's Id (optional) (either TargetName or TargetId is mandatory) .setCircuitInput(new JSONObject() { { put("key1", "value1"); put("key2", "value2"); } }) // set the test cases for the circuit .setJobName("test_job") // set job name .build(); // build circuit job meta // submit circuit job ZCJobDetails circuitJob = jobpool.submitJob(jobMeta); ``` **Node.js** **Node.js SDK to Submit a Circuit Job** ```javascript // CIRCUIT JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the circuit job pool named test // create circuit job const circuitJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'Circuit', // set the target type as Circuit for circuit jobs target_name: 'target_circuit', // set the target circuit's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target circuit's Id (optional) (either target_id or target_name is mandatory) test_cases: { arg1: "job", arg2: "test" }, // set the circuit test cases job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); ``` **Python** **Python SDK to Submit a Circuit Job** ```python # CIRCUIT JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the circuit jobpool named test # create circuit job circuit_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'Circuit', # set the target type as Circuit for circuit jobs 'target_name': 'target_circuit', # set the target circuit's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target circuit's Id (optional) (either target_id or target_name is mandatory) 'test_cases': { 'arg1': 'job', 'arg2': 'test' }, # set the circuit test cases 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) ``` These SDKs will also be available in these sections: * [Java SDK](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/) * [Node.js SDK](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) * [Python SDK](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/) 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. **Submit an AppSail Job** ### Submit an Instant Job to the AppSail Job Pool 1. Choose the required job pool from the **Job Pool** section. ![catalyst_job_scheduling_jp_appsail_jp_sub_appsail_jp_sel](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_jp_sub_appsail_jp_sel.webp) 2. Click the **Jobs** tab. ![catalyst_job_scheduling_jp_appsail_jp_job_tab](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_jp_job_tab.webp) 3. Click **Create Job**. ![catalyst_job_scheduling_jp_appsail_create_job](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_create_job.webp) 4. You can create and submit a job to a job pool directly in the console using the *Builder* option. You can also submit a job to the job pool through code using the Catalyst SDKs that are available in [Java](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/), [Node.js](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) and [Python](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/). The SDK snippets can also be copied from the console. **Using the Builder** 5. Provide a name for your job in the **Job Name** input field. ![catalyst_job_scheduling_jp_appsail_builder_job_name](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_builder_job_name.webp) 6. Select the *AppSail* service you wish to trigger from the **Target AppSail** drop-down.. ![catalyst_job_scheduling_jp_appsail_app_sail_drop](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_app_sail_drop.webp) The URL input field and the **Preview URL** will be populated automatically once you select your *AppSail* service. > **Note:** * It is vital you create and deploy the required AppSail service to the Catalyst console, to ensure it is available in the drop-down when you create a job to trigger the service. * If you have not deployed an AppSail service yet, click the **Create New** option in the drop-down. You will be directed to the [Catalyst Serverless](https://docs.catalyst.zoho.com/en/serverless/) console, where you can begin steps to create and deploy your AppSail service. * You can find the help documentation for **Catalyst AppSail** [here](https://docs.catalyst.zoho.com/en/serverless/help/appsail/introduction/). 7. Select your required **Request Method** from the drop-down.. ![catalyst_job_scheduling_jp_appsail_request_meth](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_request_meth.webp) 8. You can provide **Headers & Value** in a key-value pair format. ![catalyst_job_scheduling_jp_appsail_headnval](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_headnval.webp) You can also provide **Params** in a key-value pair format by enabling the **Query Parameters** toggle. ![catalyst_job_scheduling_jp_appsail_job_sub_params](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_job_sub_params.webp) You can verify your *Query Params*, as the **Preview URL** section gets populated automatically when you input them. > **Note: Query Parameters** are custom parameters that you can pass to your *Job Function*. They are passed in a **user-defined format**, and you customize the parameter value and include any terms that you require to be passed in the parameter. 9. Optionally, you can click the **Show Advanced Options** to provide resubmission instructions. You can choose the number of retries you wish to attempt from the **No. of Retries** drop-down, and you can choose the time interval between each retry attempt using the **Retry Interval** drop-down. ![catalyst_job_scheduling_jp_sub_appsail_jp_retries](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_sub_appsail_jp_retries.webp) > **Note:** The retries will only be attempted if the initial submission of the job ended in Failure status. You can choose to attempt a maximum of **10 retries** with a minimum retry interval of **1 minute** and a maximum retry interval of **24Hrs**. 10. Click **Create**, after confirming your configurations. ![catalyst_job_scheduling_jp_sub_appsail_jp_confirm_create](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_sub_appsail_jp_confirm_create.webp) Once you click **Create**, the job will be immediately submitted to the job pool for execution. This makes the *Builder* option a great tool to test your job pool's performance. Once the job is submitted, you will be able to view all the general details of the submitted job in the **Job Definition** section. You will also be able to view the status of the *Job Execution* in the **Job Execution & Status** section. ![catalyst_job_scheduling_jp_appsail_job_submit_done](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_appsail_job_submit_done.webp) The execution status of the job will also be labeled at the top next to the *Job Name*. You will also be provided with the **Job Definition** in a JSON code format that you can copy and use to submit a new job with the same specifications. You can also visit the logs of the execution generated in [DevOps's Logs](https://docs.catalyst.zoho.com/en/devops/help/logs/introduction/) component by clicking the **View Logs** button. **Using Catalyst SDK** 5. Click the **SDK** tab. ![catalyst_job_scheduling_appsail_jp_sub_sdk](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_appsail_jp_sub_sdk.webp) Choose your preferred programming language by navigating the tabs and copy the required code snippet, using the **copy-button**. **Java** **Java SDK to Submit an AppSail Job** ```java // APPSAIL JOB // get job scheduling instance ZCJobScheduling jobScheduling = ZCJobScheduling.getInstance(); // create a job pool instance ZCJobpool jobpool = jobScheduling.jobpoolInstance("test"); // create a job pool instance for the appsail job pool named test // generate appsail job meta ZCJobMetaDetail jobMeta = ZCJobBuilder.appSailJobBuilder() // create appsail job builder .setJobConfig(2, 15 * 60 * 1000L) // set job config - job retries => 2 retries in 15 mins (optional) .setTargetName("test_appsail") // set appsail name .setRequestMethod("POST") // set appsail request method .setUrl("/test") // set appsail request url .setParams(new JSONObject() { { put("arg1", "value1"); put("arg2", "value2"); } }) // set appsail request query params .setHeaders(new JSONObject() { { put("IS_TEST_REQUEST", "true"); } }) // set the appsail request's headers (optional) .setRequestBody("test_request") // set the appsail request's body (optional) .setJobName("test_job") // set job name .build(); // build appsail job meta // submit appsail job ZCJobDetails appSailJob = jobpool.submitJob(jobMeta); ``` **Node.js** **Node.js SDK to Submit an AppSail Job** ```javascript // APPSAIL JOB const jobScheduling = app.jobScheduling(); // create job scheduling instance const jobpool = jobScheduling.jobpool({ name: 'test' }); // create job pool instance for the appsail job pool named test // create appsail job const appsailJob = await jobpool.submitJob({ job_name: 'test_job', // set a name for the job target_type: 'AppSail', // set the target type as AppSail for appsail jobs target_name: 'target_appsail', // set the target appsail's name (optional) (either target_id or target_name is mandatory) // target_id: '123467890', // set the target appsail's Id (optional) (either target_id or target_name is mandatory) request_method: 'POST', // set the appsail request's method url: '/test', // set the appsail's url path (optional) params: { arg1: 'test', arg2: 'job' }, // set the appsail request's query params (optional) headers: { IS_TEST_REQUEST: 'true' }, // set the appsail request's headers (optional) request_body: 'test_request', // set the appsail request's body (optional) job_config: { number_of_retries: 2, // set the number of retries retry_interval: 15 * 60 * 1000 + '' // set the retry interval } // set job config - job retries => 2 retries in 15 mins (optional) }); ``` **Python** **Python SDK to Submit an AppSail Job** ```python # APPSAIL JOB job_scheduling = app.job_scheduling() # create job scheduling instance jobpool = job_scheduling.jobpool(jobpool_name="test") # create jobpool instance for the appsail jobpool named test # create appsail job appsail_job = jobpool.submit_job({ 'job_name': 'test_job', # set a name for the job 'target_type': 'AppSail', # set the target type as AppSail for appsail jobs 'target_name': 'target_appsail', # set the target appsail's name (optional) (either target_id or target_name is mandatory) # 'target_id': '123467890', # set the target appsail's Id (optional) (either target_id or target_name is mandatory) 'request_method': 'POST', # set the appsail request's method 'url': '/test', # set the appsail's url path (optional) 'params': { 'arg1': 'test', 'arg2': 'job' }, # set the appsail request's query params (optional) 'headers': { 'IS_TEST_REQUEST': 'true' }, # set the appsail request's headers (optional) 'request_body': 'test_request', # set the appsail request's body (optional) 'job_config': { 'number_of_retries': 2, # set the number of retries 'retry_interval': 15 * 60 * 1000 # set the retry interval } # set job config - job retries => 2 retries in 15 mins (optional) }) ``` These SDKs will also be available in these sections: * [Java SDK](https://docs.catalyst.zoho.com/en/sdk/java/v1/job-scheduling/overview/) * [Node.js SDK](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/job-scheduling/overview/) * [Python SDK](https://docs.catalyst.zoho.com/en/sdk/python/v1/job-scheduling/overview/) 6. Paste the copied code in your code file and configure the job according to your required logic. 7. The job will be submitted to the job pool during run time. You can view the performance and status of your job in the following sections: > **Note:** The following performance and status views are illustrated with a *Webhook Job Pool*. The views will be similar for all the other types of job pools. * The [Dashboard](https://docs.catalyst.zoho.com/en/job-scheduling/help/dashboard/dashboard/) ![catalyst_job_scheduling_sub_jp_show_state_dash](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_sub_jp_show_state_dash.webp) * The [Job Pool](https://docs.catalyst.zoho.com/en/job-scheduling/help/jobpool/introduction/) *Overview* section ![catalyst_job_scheduling_sub_jp_overview_stats](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_sub_jp_overview_stats.webp) * The **Jobs** tab in the *Job Pool* section ![catalyst_job_scheduling_jp_view_jp_jobs_stats](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jp_view_jp_jobs_stats.webp) * The [Jobs](https://docs.catalyst.zoho.com/en/job-scheduling/help/job/introduction/) component section ![catalyst_job_scheduling_jobs_sb_jp_view](https://catalyst-docs-development.zohostratus.in/images/help/job-scheduling/catalyst_job_scheduling_jobs_sb_jp_view.webp) You can submit the next job to the job pool in this section by clicking the **Create Job** button and following the steps mentioned above.