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.
Hinweis: Derzeit wird nur die Methode GetOperation
für die Ressource google.longrunning.operation
unterstützt.
Batch erstellen Jobs
Das folgende Codebeispiel zeigt, wie Jobs im Stapel erstellt werden:
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))
Batch-Aktualisierungsjobs
Das folgende Codebeispiel zeigt, wie Jobs im Batch aktualisiert werden:
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
Das folgende Codebeispiel zeigt, wie Jobs im Batch gelöscht werden: