callTask<Args = Record<string, unknown>, T = unknown>( taskName: string, args: Args, retryConfig?: ContextFunctionRetryConfig, ): Promise<T>
import { TaskContext } from "compose"; export async function main({ callTask }: TaskContext) { const result = await callTask("my-task", { some: "payload" }); return result; }
import { TaskContext } from "compose"; type MarketData = { questionId: string; resolved: boolean; startTime: number; endTime: number; }; export async function main({ logEvent, collection, callTask }: TaskContext) { const marketsCollection = await collection<MarketData>("markets"); const unresolvedMarkets = await marketsCollection.findMany({ resolved: false }); const SYMBOL = "ETH-USD"; const marketDataPromises = unresolvedMarkets.map(async (market) => { try { const response = await callTask<{ error?: string }>("readMarketData", { questionId: market.questionId, symbol: SYMBOL, startTime: market.startTime, endTime: market.endTime, }); return { market, marketData: response, }; } catch (error) { await logEvent({ code: "PAST_DUE_MARKET_DATA_READ_FAILED", message: `Failed to read candle data for market ${market.questionId}: ${error}`, data: JSON.stringify({ questionId: market.questionId, error: String(error), }), }); return null; } }); const marketDataResults = await Promise.all(marketDataPromises); return { marketDataResults, }; }
Was this page helpful?