Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Batchvorgänge

Cloud Talent Solution unterstützt asynchrone Batch-Vorgänge, mit denen Sie mehrere API-Aufrufe in eine einzelne HTTP-Anforderung einfügen können. Der zurückgegebene Antworttyp ist google.longrunning.operation. Der detaillierte Status der Stapeloperation kann durch Aufrufen der Methode GetOperation mithilfe des Felds name in google.longrunning.operation abgerufen werden.

Die Verwendung von Batching führt zu einer verringerten Latenz in der API-Antwortzeit und einem höheren Durchsatz. Beachten Sie, dass der erfolgreiche Empfang einer Batch-API-Antwort nur anzeigt, dass die Batch-Anforderung erstellt wurde. Die eigentliche Datenverarbeitung erfolgt asynchron. Vor mehr als 30 Tagen erstellte Stapeloperationen sind mit der Methode GetOperation nicht mehr verfügbar.

Jeder Batch ist auf 200 Anfragen beschränkt.

Fortschrittsanzeige für den Stapelbetrieb

Das durch Aufrufen der Batch-Erstellungs- oder Aktualisierungsmethode erstellte google.longrunning.operation fällt in einen der folgenden Zustände:

  • STATE_UNSPECIFIED (der Standardwert)
  • INITIALISIERUNG
  • Verarbeitung
  • Erfolgreich
  • FEHLER

Im Status INITALISIERUNG werden die Felder success_count, failure_count und total_count auf 0 gesetzt. Wenn sich die Operation im Status VERARBEITUNG befindet, können sich success_count und failure_count erhöhen. Im Status ERFOLGREICH ist success_count + failure_count immer gleich total_count und success_count > 0. Im Status FEHLER ist success_count immer 0.

Batch erstellen Jobs

Das folgende Codebeispiel zeigt, wie Jobs im Stapel erstellt werden:

PHP

require __DIR__.'/../../vendor/autoload.php';

use Google\Cloud\Talent\V4beta1\JobServiceClient;
use Google\Cloud\Talent\V4beta1\Job;
use Google\Cloud\Talent\V4beta1\Job_ApplicationInfo;

/**
 * Batch Create Jobs.
 *
 * @param string $projectId Your Google Cloud Project ID
 * @param string $tenantId  Identifier of the Tenant
 */
function sampleBatchCreateJobs($projectId, $tenantId, $companyNameOne, $requisitionIdOne, $titleOne, $descriptionOne, $jobApplicationUrlOne, $addressOne, $languageCodeOne, $companyNameTwo, $requisitionIdTwo, $titleTwo, $descriptionTwo, $jobApplicationUrlTwo, $addressTwo, $languageCodeTwo)
{

    $jobServiceClient = new JobServiceClient();

    // $projectId = 'Your Google Cloud Project ID';
    // $tenantId = 'Your Tenant ID (using tenancy is optional)';
    // $companyNameOne = 'Company name, e.g. projects/your-project/companies/company-id';
    // $requisitionIdOne = 'Job requisition ID, aka Posting ID. Unique per job.';
    // $titleOne = 'Software Engineer';
    // $descriptionOne = 'This is a description of this <i>wonderful</i> job!';
    // $jobApplicationUrlOne = 'https://www.example.org/job-posting/123';
    // $addressOne = '1600 Amphitheatre Parkway, Mountain View, CA 94043';
    // $languageCodeOne = 'en-US';
    // $companyNameTwo = 'Company name, e.g. projects/your-project/companies/company-id';
    // $requisitionIdTwo = 'Job requisition ID, aka Posting ID. Unique per job.';
    // $titleTwo = 'Quality Assurance';
    // $descriptionTwo = 'This is a description of this <i>wonderful</i> job!';
    // $jobApplicationUrlTwo = 'https://www.example.org/job-posting/123';
    // $addressTwo = '111 8th Avenue, New York, NY 10011';
    // $languageCodeTwo = 'en-US';
    $formattedParent = $jobServiceClient->tenantName($projectId, $tenantId);
    $uris = [$jobApplicationUrlOne];
    $applicationInfo = new Job_ApplicationInfo();
    $applicationInfo->setUris($uris);
    $addresses = [$addressOne];
    $jobsElement = new Job();
    $jobsElement->setCompany($companyNameOne);
    $jobsElement->setRequisitionId($requisitionIdOne);
    $jobsElement->setTitle($titleOne);
    $jobsElement->setDescription($descriptionOne);
    $jobsElement->setApplicationInfo($applicationInfo);
    $jobsElement->setAddresses($addresses);
    $jobsElement->setLanguageCode($languageCodeOne);
    $uris2 = [$jobApplicationUrlTwo];
    $applicationInfo2 = new Job_ApplicationInfo();
    $applicationInfo2->setUris($uris2);
    $addresses2 = [$addressTwo];
    $jobsElement2 = new Job();
    $jobsElement2->setCompany($companyNameTwo);
    $jobsElement2->setRequisitionId($requisitionIdTwo);
    $jobsElement2->setTitle($titleTwo);
    $jobsElement2->setDescription($descriptionTwo);
    $jobsElement2->setApplicationInfo($applicationInfo2);
    $jobsElement2->setAddresses($addresses2);
    $jobsElement2->setLanguageCode($languageCodeTwo);
    $jobs = [$jobsElement, $jobsElement2];

    try {
        $operationResponse = $jobServiceClient->batchCreateJobs($formattedParent, $jobs);
        $operationResponse->pollUntilComplete();
        if ($operationResponse->operationSucceeded()) {
            $response = $operationResponse->getResult();
            printf('Batch response: %s'.PHP_EOL, print_r($response, true));
        } else {
            $error = $operationResponse->getError();
            // handleError($error)
        }
    } finally {
        $jobServiceClient->close();
    }

}

Python


from google.cloud import talent_v4beta1
import six

def sample_batch_create_jobs(project_id, tenant_id, company_name_one,
                             requisition_id_one, title_one, description_one,
                             job_application_url_one, address_one,
                             language_code_one, company_name_two,
                             requisition_id_two, title_two, description_two,
                             job_application_url_two, address_two,
                             language_code_two):
    """
    Batch Create Jobs

    Args:
      project_id Your Google Cloud Project ID
      tenant_id Identifier of the Tenant
    """

    client = talent_v4beta1.JobServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID (using tenancy is optional)'
    # company_name_one = 'Company name, e.g. projects/your-project/companies/company-id'
    # requisition_id_one = 'Job requisition ID, aka Posting ID. Unique per job.'
    # title_one = 'Software Engineer'
    # description_one = 'This is a description of this <i>wonderful</i> job!'
    # job_application_url_one = 'https://www.example.org/job-posting/123'
    # address_one = '1600 Amphitheatre Parkway, Mountain View, CA 94043'
    # language_code_one = 'en-US'
    # company_name_two = 'Company name, e.g. projects/your-project/companies/company-id'
    # requisition_id_two = 'Job requisition ID, aka Posting ID. Unique per job.'
    # title_two = 'Quality Assurance'
    # description_two = 'This is a description of this <i>wonderful</i> job!'
    # job_application_url_two = 'https://www.example.org/job-posting/123'
    # address_two = '111 8th Avenue, New York, NY 10011'
    # language_code_two = 'en-US'

    if isinstance(project_id, six.binary_type):
        project_id = project_id.decode('utf-8')
    if isinstance(tenant_id, six.binary_type):
        tenant_id = tenant_id.decode('utf-8')
    if isinstance(company_name_one, six.binary_type):
        company_name_one = company_name_one.decode('utf-8')
    if isinstance(requisition_id_one, six.binary_type):
        requisition_id_one = requisition_id_one.decode('utf-8')
    if isinstance(title_one, six.binary_type):
        title_one = title_one.decode('utf-8')
    if isinstance(description_one, six.binary_type):
        description_one = description_one.decode('utf-8')
    if isinstance(job_application_url_one, six.binary_type):
        job_application_url_one = job_application_url_one.decode('utf-8')
    if isinstance(address_one, six.binary_type):
        address_one = address_one.decode('utf-8')
    if isinstance(language_code_one, six.binary_type):
        language_code_one = language_code_one.decode('utf-8')
    if isinstance(company_name_two, six.binary_type):
        company_name_two = company_name_two.decode('utf-8')
    if isinstance(requisition_id_two, six.binary_type):
        requisition_id_two = requisition_id_two.decode('utf-8')
    if isinstance(title_two, six.binary_type):
        title_two = title_two.decode('utf-8')
    if isinstance(description_two, six.binary_type):
        description_two = description_two.decode('utf-8')
    if isinstance(job_application_url_two, six.binary_type):
        job_application_url_two = job_application_url_two.decode('utf-8')
    if isinstance(address_two, six.binary_type):
        address_two = address_two.decode('utf-8')
    if isinstance(language_code_two, six.binary_type):
        language_code_two = language_code_two.decode('utf-8')
    parent = client.tenant_path(project_id, tenant_id)
    uris = [job_application_url_one]
    application_info = {'uris': uris}
    addresses = [address_one]
    jobs_element = {
        'company': company_name_one,
        'requisition_id': requisition_id_one,
        'title': title_one,
        'description': description_one,
        'application_info': application_info,
        'addresses': addresses,
        'language_code': language_code_one
    }
    uris_2 = [job_application_url_two]
    application_info_2 = {'uris': uris_2}
    addresses_2 = [address_two]
    jobs_element_2 = {
        'company': company_name_two,
        'requisition_id': requisition_id_two,
        'title': title_two,
        'description': description_two,
        'application_info': application_info_2,
        'addresses': addresses_2,
        'language_code': language_code_two
    }
    jobs = [jobs_element, jobs_element_2]

    operation = client.batch_create_jobs(parent, jobs)

    print('Waiting for operation to complete...')
    response = operation.result()

    print('Batch response: {}'.format(response))

Ruby

require "google/cloud/talent"

# Instantiate a client
job_service = Google::Cloud::Talent.job_service

# project_id = "Your Google Cloud Project ID"
# tenant_id = "Your Tenant ID (using tenancy is required)"
formatted_parent = job_service.tenant_path project: project_id, tenant: tenant_id

# job_application_url_one = "https://www.example.org/job-posting/123"
uris = [job_application_url_one]
application_info = { uris: uris }

# address_one = "1600 Amphitheatre Parkway, Mountain View, CA 94043"
addresses = [address_one]

# company_name_one = "Company name, e.g. projects/your-project/companies/company-id"
# requisition_id_one = "Job requisition ID, aka Posting ID. Unique per job."
# title_one = "Software Engineer"
# description_one = "This is a description of this <i>wonderful</i> job!"
# language_code_one = "en-US"
jobs_element = {
  company:          company_name_one,
  requisition_id:   requisition_id_one,
  title:            title_one,
  description:      description_one,
  application_info: application_info,
  addresses:        addresses,
  language_code:    language_code_one
}

# job_application_url_two = "https://www.example.org/job-posting/123"
uris_2 = [job_application_url_two]
application_info_2 = { uris: uris_2 }

# address_two = "111 8th Avenue, New York, NY 10011"
addresses_2 = [address_two]

# company_name_two = "Company name, e.g. projects/your-project/companies/company-id"
# requisition_id_two = "Job requisition ID, aka Posting ID. Unique per job."
# title_two = "Quality Assurance"
# description_two = "This is a description of this <i>wonderful</i> job!"
# language_code_two = "en-US"
jobs_element_2 = {
  company:          company_name_two,
  requisition_id:   requisition_id_two,
  title:            title_two,
  description:      description_two,
  application_info: application_info_2,
  addresses:        addresses_2,
  language_code:    language_code_two
}
jobs = [jobs_element, jobs_element_2]

# Make the long-running operation request
operation = job_service.batch_create_jobs parent: formatted_parent, jobs: jobs

# Block until operation complete
operation.wait_until_done!

raise operation.results.message if operation.error?

response = operation.response

puts "Batch response: #{response.inspect}"

Batch-Aktualisierungsjobs

Das folgende Codebeispiel zeigt, wie Jobs im Batch aktualisiert werden:

PHP

require __DIR__.'/../../vendor/autoload.php';

use Google\Cloud\Talent\V4beta1\JobServiceClient;
use Google\Cloud\Talent\V4beta1\Job;
use Google\Cloud\Talent\V4beta1\Job_ApplicationInfo;

/**
 * Batch Update Jobs.
 *
 * @param string $projectId Your Google Cloud Project ID
 * @param string $tenantId  Identifier of the Tenant
 */
function sampleBatchUpdateJobs($projectId, $tenantId, $jobNameOne, $companyNameOne, $requisitionIdOne, $titleOne, $descriptionOne, $jobApplicationUrlOne, $addressOne, $languageCodeOne, $jobNameTwo, $companyNameTwo, $requisitionIdTwo, $titleTwo, $descriptionTwo, $jobApplicationUrlTwo, $addressTwo, $languageCodeTwo)
{

    $jobServiceClient = new JobServiceClient();

    // $projectId = 'Your Google Cloud Project ID';
    // $tenantId = 'Your Tenant ID (using tenancy is optional)';
    // $jobNameOne = 'job name, e.g. projects/your-project/tenants/tenant-id/jobs/job-id';
    // $companyNameOne = 'Company name, e.g. projects/your-project/companies/company-id';
    // $requisitionIdOne = 'Job requisition ID, aka Posting ID. Unique per job.';
    // $titleOne = 'Software Engineer';
    // $descriptionOne = 'This is a description of this <i>wonderful</i> job!';
    // $jobApplicationUrlOne = 'https://www.example.org/job-posting/123';
    // $addressOne = '1600 Amphitheatre Parkway, Mountain View, CA 94043';
    // $languageCodeOne = 'en-US';
    // $jobNameTwo = 'job name, e.g. projects/your-project/tenants/tenant-id/jobs/job-id';
    // $companyNameTwo = 'Company name, e.g. projects/your-project/companies/company-id';
    // $requisitionIdTwo = 'Job requisition ID, aka Posting ID. Unique per job.';
    // $titleTwo = 'Quality Assurance';
    // $descriptionTwo = 'This is a description of this <i>wonderful</i> job!';
    // $jobApplicationUrlTwo = 'https://www.example.org/job-posting/123';
    // $addressTwo = '111 8th Avenue, New York, NY 10011';
    // $languageCodeTwo = 'en-US';
    $formattedParent = $jobServiceClient->tenantName($projectId, $tenantId);
    $uris = [$jobApplicationUrlOne];
    $applicationInfo = new Job_ApplicationInfo();
    $applicationInfo->setUris($uris);
    $addresses = [$addressOne];
    $jobsElement = new Job();
    $jobsElement->setName($jobNameOne);
    $jobsElement->setCompany($companyNameOne);
    $jobsElement->setRequisitionId($requisitionIdOne);
    $jobsElement->setTitle($titleOne);
    $jobsElement->setDescription($descriptionOne);
    $jobsElement->setApplicationInfo($applicationInfo);
    $jobsElement->setAddresses($addresses);
    $jobsElement->setLanguageCode($languageCodeOne);
    $uris2 = [$jobApplicationUrlTwo];
    $applicationInfo2 = new Job_ApplicationInfo();
    $applicationInfo2->setUris($uris2);
    $addresses2 = [$addressTwo];
    $jobsElement2 = new Job();
    $jobsElement2->setName($jobNameTwo);
    $jobsElement2->setCompany($companyNameTwo);
    $jobsElement2->setRequisitionId($requisitionIdTwo);
    $jobsElement2->setTitle($titleTwo);
    $jobsElement2->setDescription($descriptionTwo);
    $jobsElement2->setApplicationInfo($applicationInfo2);
    $jobsElement2->setAddresses($addresses2);
    $jobsElement2->setLanguageCode($languageCodeTwo);
    $jobs = [$jobsElement, $jobsElement2];

    try {
        $operationResponse = $jobServiceClient->batchUpdateJobs($formattedParent, $jobs);
        $operationResponse->pollUntilComplete();
        if ($operationResponse->operationSucceeded()) {
            $response = $operationResponse->getResult();
            printf('Batch response: %s'.PHP_EOL, print_r($response, true));
        } else {
            $error = $operationResponse->getError();
            // handleError($error)
        }
    } finally {
        $jobServiceClient->close();
    }

}

Python


from google.cloud import talent_v4beta1
import six

def sample_batch_update_jobs(project_id, tenant_id, job_name_one,
                             company_name_one, requisition_id_one, title_one,
                             description_one, job_application_url_one,
                             address_one, language_code_one, job_name_two,
                             company_name_two, requisition_id_two, title_two,
                             description_two, job_application_url_two,
                             address_two, language_code_two):
    """
    Batch Update Jobs

    Args:
      project_id Your Google Cloud Project ID
      tenant_id Identifier of the Tenant
    """

    client = talent_v4beta1.JobServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID (using tenancy is optional)'
    # job_name_one = 'job name, e.g. projects/your-project/tenants/tenant-id/jobs/job-id'
    # company_name_one = 'Company name, e.g. projects/your-project/companies/company-id'
    # requisition_id_one = 'Job requisition ID, aka Posting ID. Unique per job.'
    # title_one = 'Software Engineer'
    # description_one = 'This is a description of this <i>wonderful</i> job!'
    # job_application_url_one = 'https://www.example.org/job-posting/123'
    # address_one = '1600 Amphitheatre Parkway, Mountain View, CA 94043'
    # language_code_one = 'en-US'
    # job_name_two = 'job name, e.g. projects/your-project/tenants/tenant-id/jobs/job-id'
    # company_name_two = 'Company name, e.g. projects/your-project/companies/company-id'
    # requisition_id_two = 'Job requisition ID, aka Posting ID. Unique per job.'
    # title_two = 'Quality Assurance'
    # description_two = 'This is a description of this <i>wonderful</i> job!'
    # job_application_url_two = 'https://www.example.org/job-posting/123'
    # address_two = '111 8th Avenue, New York, NY 10011'
    # language_code_two = 'en-US'

    if isinstance(project_id, six.binary_type):
        project_id = project_id.decode('utf-8')
    if isinstance(tenant_id, six.binary_type):
        tenant_id = tenant_id.decode('utf-8')
    if isinstance(job_name_one, six.binary_type):
        job_name_one = job_name_one.decode('utf-8')
    if isinstance(company_name_one, six.binary_type):
        company_name_one = company_name_one.decode('utf-8')
    if isinstance(requisition_id_one, six.binary_type):
        requisition_id_one = requisition_id_one.decode('utf-8')
    if isinstance(title_one, six.binary_type):
        title_one = title_one.decode('utf-8')
    if isinstance(description_one, six.binary_type):
        description_one = description_one.decode('utf-8')
    if isinstance(job_application_url_one, six.binary_type):
        job_application_url_one = job_application_url_one.decode('utf-8')
    if isinstance(address_one, six.binary_type):
        address_one = address_one.decode('utf-8')
    if isinstance(language_code_one, six.binary_type):
        language_code_one = language_code_one.decode('utf-8')
    if isinstance(job_name_two, six.binary_type):
        job_name_two = job_name_two.decode('utf-8')
    if isinstance(company_name_two, six.binary_type):
        company_name_two = company_name_two.decode('utf-8')
    if isinstance(requisition_id_two, six.binary_type):
        requisition_id_two = requisition_id_two.decode('utf-8')
    if isinstance(title_two, six.binary_type):
        title_two = title_two.decode('utf-8')
    if isinstance(description_two, six.binary_type):
        description_two = description_two.decode('utf-8')
    if isinstance(job_application_url_two, six.binary_type):
        job_application_url_two = job_application_url_two.decode('utf-8')
    if isinstance(address_two, six.binary_type):
        address_two = address_two.decode('utf-8')
    if isinstance(language_code_two, six.binary_type):
        language_code_two = language_code_two.decode('utf-8')
    parent = client.tenant_path(project_id, tenant_id)
    uris = [job_application_url_one]
    application_info = {'uris': uris}
    addresses = [address_one]
    jobs_element = {
        'name': job_name_one,
        'company': company_name_one,
        'requisition_id': requisition_id_one,
        'title': title_one,
        'description': description_one,
        'application_info': application_info,
        'addresses': addresses,
        'language_code': language_code_one
    }
    uris_2 = [job_application_url_two]
    application_info_2 = {'uris': uris_2}
    addresses_2 = [address_two]
    jobs_element_2 = {
        'name': job_name_two,
        'company': company_name_two,
        'requisition_id': requisition_id_two,
        'title': title_two,
        'description': description_two,
        'application_info': application_info_2,
        'addresses': addresses_2,
        'language_code': language_code_two
    }
    jobs = [jobs_element, jobs_element_2]

    operation = client.batch_update_jobs(parent, jobs)

    print('Waiting for operation to complete...')
    response = operation.result()

    print('Batch response: {}'.format(response))

Batch-Löschjobs

Node.js


const talent = require('@google-cloud/talent').v4;

/**
 * Batch delete jobs using a filter
 *
 * @param projectId {string} Your Google Cloud Project ID
 * @param tenantId {string} Identifier of the Tenantd
 * @param filter {string} The filter string specifies the jobs to be deleted.
 * For example:
 * companyName = "projects/api-test-project/companies/123" AND equisitionId = "req-1"
 */
function sampleBatchDeleteJobs(projectId, tenantId, filter) {
  const client = new talent.JobServiceClient();
  // const projectId = 'Your Google Cloud Project ID';
  // const tenantId = 'Your Tenant ID (using tenancy is optional)';
  // const filter = '[Query]';
  const formattedParent = client.tenantPath(projectId, tenantId);
  const request = {
    parent: formattedParent,
    filter: filter,
  };
  client.batchDeleteJobs(request).catch(err => {
    console.error(err);
  });
  console.log('Batch deleted jobs from filter');
}