in Facebook/WebJob/DataIngestion.cs [30:62]
public async Task Execute(string jobMessage)
{
if (string.IsNullOrEmpty(Settings.AAdAppId) || string.IsNullOrEmpty(Settings.AAdAppSecret))
{
// Will throw exception if the connector is not configured.
await GetConfigurationSettingFomStorge();
}
ConnectorTask taskInfo = JsonConvert.DeserializeObject<ConnectorTask>(jobMessage);
IEventApiClient eventApiClient = new EventApiClient(new Auth(Settings.AAdAppId, Settings.AAdAppSecret), Settings.EventAPIBaseUrl);
IUploader uploader = new BlobUploader(taskInfo.BlobSasUri);
string sourceInfo = await GetSourceInfoFromTable(taskInfo);
Trace.TraceInformation($"Fetched job info from PageJobEntity Table for JobId: {taskInfo.JobId} and TaskId: {taskInfo.TaskId}");
Status status;
List<ItemMetadata> itemMetadata = new List<ItemMetadata>();
JobProcessorBase jobProcessor = new JobProcessorFB(new Downloader(), uploader);
try
{
itemMetadata = await jobProcessor.FetchData(taskInfo, sourceInfo);
status = Status.Success;
Trace.TraceInformation($"Successfully completed Job Execution, JobId:{taskInfo.JobId}, TaskId:{taskInfo.TaskId}");
}
catch (HttpRequestException e)
{
status = Status.TemporaryFailure;
Trace.TraceError($"Connectivity Error, JobId:{taskInfo.JobId}, TaskId:{taskInfo.TaskId}, Error: {e.Message}, ErrorStackTrace: {e.StackTrace}");
}
catch (Exception e)
{
status = Status.PermanentFailure;
Trace.TraceError($"Unknown Failure, Requires Attention, JobId:{taskInfo.JobId}, TaskId:{taskInfo.TaskId}, Error: {e.Message}, ErrorStackTrace: {e.StackTrace}");
}
await eventApiClient.OnDownloadCompleteAsync(taskInfo.TenantId, taskInfo.JobId, taskInfo.TaskId, status, itemMetadata);
}