Cloud Talent Solution supporta operazioni batch asincrone, che consentono di effettuare più chiamate API in un'unica richiesta HTTP. Il tipo di risposta restituito è google.longrunning.operation
. Lo
stato dettagliato dell'operazione batch può essere recuperato chiamando il metodo GetOperation
utilizzando il campo
name
in google.longrunning.operation
.
L'uso del batch genera una minore latenza del tempo di risposta dell'API e una velocità effettiva più elevata. Tieni presente che la ricezione corretta di una risposta API batch indica solo che è stata creata la richiesta batch.
L'elaborazione effettiva dei dati viene eseguita in modo asincrono. Le operazioni batch create più di 30 giorni fa non saranno più accessibili con il metodo GetOperation
.
Ogni batch è limitato a 200 richieste .
Indicatore dell'avanzamento dell'operazione collettiva
Il google.longrunning.operation
creato chiamando il metodo di creazione o aggiornamento batch rientra in uno dei seguenti stati:
STATE_UNSPECIFIED (il valore predefinito)
INIZIALIZZAZIONE
IN CORSO
COMPLETATO
OPERAZIONE NON RIUSCITA
Nello stato INIZIALE, i campi success_count
, failure_count
e total_count
sono impostati su 0. Se l'operazione è in stato PROCESSING, success_count
e failure_count
potrebbero aumentare. Nello stato SUCCEEDED, success_count
+ failure_count
è sempre uguale a total_count
e success_count
> 0. Nello stato NON SUPERATO, success_count
è sempre 0.
Nota: attualmente il solo metodo GetOperation
è supportato solo sulla risorsa
google.longrunning.operation
.
Crea job in batch
Il seguente esempio di codice mostra come creare job in batch:
Python
Per eseguire l'autenticazione in CTS, configura le Credenziali predefinite dell'applicazione.
Per saperne di più, consulta
Configurare l'autenticazione per un ambiente di sviluppo locale .
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))
Job di aggiornamento batch
Il seguente esempio di codice mostra come eseguire l'aggiornamento batch dei job:
Python
Per eseguire l'autenticazione in CTS, configura le Credenziali predefinite dell'applicazione.
Per saperne di più, consulta
Configurare l'autenticazione per un ambiente di sviluppo locale .
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))
Job di eliminazione in batch
Il seguente esempio di codice illustra come eseguire l'eliminazione batch dei job: