for ($i=1; $i<=$iterationsLimit; $i++)
{
    $results = $db->arrayQuery($sql);
    if (count($results) <= 0)
    {
        break;
    }

    // construct ids table with all ezpending id and $nodeList with all node to clear from varnish side
    $ids      = array();
    $nodeList = array();
    foreach ($results as $result)
    {
        $ids[]                            = $result["id"];
        $nodeList[$result['param_int']][] = $result['param'];
    }

    foreach ($nodeList as $key => $item)
    {
        $nodeList[$key] = array_unique($nodeList[$key]);
    }

    // clear varnish for all node id
    $varnishControl = new VarnishControl();
    $varnishControl->banNodes($nodeList);

    $sqlDelete = sprintf("DELETE FROM ezpending_actions WHERE id IN (%s)", implode(',', $ids));
    $db->query($sqlDelete);
    $cli->output("Removed $clearLimit items, $i/$iterationsLimit");
    sleep(1);
}
    catch (Exception $e)
    {
        $cli->output($e->getMessage());
    }
}

//get XML
$xml = getXML();

if(!empty($xml))
{
    //fetch objects parent node
    /* @type $parentObject eZContentObject */
    /* @type $parentNode eZContentObjectTreeNode */
    $parentObject = eZContentObject::fetchByRemoteID( 'congress_report_rss_folder' );
    $parentNode = $parentObject->mainNode();

    //delete parent node childrens
    deleteNodes($parentNode);

    //convert XML string into eZ Publish objects
    XMLToHTMLObjects($parentNode, $xml);

    //clear homepage varnish cache
    $varnishControl = new VarnishControl();
    $varnishControl->banNodes($parentNode->attribute('parent_node_id'));

    //clear parent view cache
    eZContentCacheManager::clearObjectViewCache( $parentObject->attribute('id'), true );
}