Pular para o conteúdo

Sistema e automação

## g.workers.* — processos de trabalho das filas

Seção intitulada “## g.workers.* — processos de trabalho das filas”

Gerencia grupos de processos de trabalho concorrentes para processamento em lote. Veja Processos de trabalho das filas para detalhes completos.

MétodoAssinaturaAsyncDescrição
start(options)NãoInicia grupos de processos de trabalho
stop(queueName?)NãoPara processos de trabalho, todos ou por fila
pause()NãoPausa todas as operações de dequeue
resume()NãoRetoma operações de dequeue
status() → WorkerPoolStatus[]NãoObtém status de todos os grupos

WorkerStartOptions:

{
clearTabs?: boolean
layout?: "horizontal" | "vertical" | "quad"
workers: WorkerPoolOptions[]
}

WorkerPoolOptions:

{
queue: string
script: string
concurrency?: number
throttle?: { requestsPerMinute?: number }
dequeue?: string
requiresWorkflowEnvelope?: boolean
}

Use requiresWorkflowEnvelope: true para filas pertencentes a fluxos de trabalho que só devem processar itens vinculados a um envelope de execução/item do registro de rastreabilidade.


Disponível apenas dentro de scripts de worker.

MétodoAssinaturaAsyncDescrição
getContext() → WorkerContextNãoObtém o item atual, ID da guia e nome da fila

WorkerContext:

{
item: QueueItem
tabId: string
queueName: string
}

Acessa tráfego HTTP capturado. A captura precisa estar habilitada; por padrão, ela está.

MétodoAssinaturaAsyncDescrição
search(query?, options?) → TrafficEntryInfo[]NãoPesquisa tráfego capturado
getById(id) → TrafficEntryInfo | nullNãoObtém uma entrada específica
getResponseBody(id) → string | nullNãoObtém o corpo da resposta
getRequestBody(id) → string | nullNãoObtém o corpo da solicitação
count() → numberNãoConta entradas capturadas
clear()NãoLimpa todo o tráfego capturado
enable()NãoHabilita captura de tráfego
disable()NãoDesabilita captura de tráfego
isEnabled() → booleanNãoVerifica se a captura está habilitada
waitForRequest(urlPattern, options?) → Promise<TrafficEntryInfo>SimAguarda uma solicitação correspondente

NetworkSearchOptions:

{
method?: string // "GET", "POST" etc.
statusMin?: number
statusMax?: number
contentType?: string
tabId?: string
limit?: number // padrão: 100
offset?: number // padrão: 0
sort?: string // timestamp, url, status, size, duration, method
order?: string // "asc" ou "desc" (padrão)
}

WaitForRequestOptions:

{
method?: string
timeout?: number // padrão: 30000ms
}
async function main() {
await g.nav.navigateToUrl("https://api.example.com/data");
// Aguardar resposta da API
const entry = await g.network.waitForRequest("api.example.com/data");
const body = g.network.getResponseBody(entry.id);
const data = JSON.parse(body);
g.log("Recebidos " + data.items.length + " itens");
}

MétodoAssinaturaAsyncDescrição
search(query?, options?) → NavigationEntryInfo[]NãoPesquisa histórico de navegação
count() → numberNãoConta entradas de histórico
clear()NãoLimpa todo o histórico

HistorySearchOptions:

{
tabId?: string
limit?: number // padrão: 100
offset?: number // padrão: 0
sort?: string // "timestamp" (padrão), "url", "status"
order?: string // "asc" ou "desc" (padrão)
}

Verificação automática de robots.txt para automação por scripts. Habilitada por padrão.

MétodoAssinaturaAsyncDescrição
isAllowed(url) → Promise<boolean>SimVerifica se uma URL é permitida por robots.txt
getCrawlDelay(url) → Promise<number | null>SimObtém o crawl-delay de um domínio
disable()NãoDesabilita verificação robots.txt para este script
enable()NãoReabilita verificação robots.txt

Inspeciona e alterna entre fluxos dentro de um espaço de trabalho.

MétodoAssinaturaAsyncDescrição
getActive() → WorkflowInfo | nullNãoObtém nome e caminho do fluxo ativo
list() → WorkflowListItem[]NãoLista todos os fluxos no espaço de trabalho
switch(name)NãoAlterna para um fluxo (disparado sem espera, acontece na thread da interface)

WorkflowInfo:

{
name: string
path: string
}

WorkflowListItem:

{
name: string
enabled: boolean
hasEvents: boolean
hasWorkers: boolean
hasTools: boolean
hasViews: boolean
scriptCount: number
}

Disponível dentro de scripts executados por gatilhos de eventos. Retorna metadados sobre por que o script foi invocado.

MétodoAssinaturaAsyncDescrição
getContext() → TriggerContextNãoObtém dados de evento para a execução atual do gatilho

TriggerContext:

{
event: string
tabId?: string
url?: string
timestamp: string
pattern?: string
oldValue?: string
newValue?: string
attribute?: string
mutationType?: string
selector?: string
changes?: object[]
}
async function main() {
const ctx = g.trigger.getContext();
if (ctx.event === "url-match") {
g.log("Correspondência " + ctx.pattern + " em " + ctx.url);
}
if (ctx.event === "dom-mutation") {
g.log(ctx.selector + " mudou: " + ctx.oldValue + "" + ctx.newValue);
}
}