Example #1
0
def main():
    
    db_connector = DBConnector('default')   
    curr=db_connector.getCursor()
    conn=db_connector.getConn()
    curr.execute("SELECT id,path FROM files_list where inserted=false and locked=false and pg_try_advisory_lock(tableoid::INTEGER,id) and path like '%contract%' limit 1")
    [(id,path)] = curr.fetchall()

    results=[]
    while id > 0:  
        try:
            dt = datetime.datetime.now()
            curr.execute("update files_list set locked=true ,lock_time=now() where id=%s",(id,))
            conn.commit()
            print "--Try get file" , id , path
            print "--RAISE warning 'Start to read file:%s:%s';" % (id,path)
            dt = datetime.datetime.now()
            parse_file_id(id,path)       
        except Exception as e:
            print "--Poblem!",e
            conn.rollback()
            exc_type, exc_obj, exc_tb = sys.exc_info()
            fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)
            print(exc_type, fname, exc_tb.tb_lineno)
            traceback.print_exc()
        finally:
            curr.execute("update files_list set locked=false,inserted=true,insert_time=now() where id=%s; select pg_advisory_unlock(tableoid::INTEGER,id) from files_list where id = %s",(id,id))
            conn.commit()
            curr.execute("SELECT id,path FROM files_list where inserted=false and locked=false and pg_try_advisory_lock(tableoid::INTEGER,id) and path like '%contract%' limit 1")
            [(id,path)] = curr.fetchall()
    print "Seems, there is no more to insert."
    print results
Example #2
0
 def writeToDb(self, choice=True):
     self.db_connector = DBConnector('default')
     self.dbConn = self.db_connector.getConn()
     self.curr = self.db_connector.getCursor()
     self.write_to_db = choice
Example #3
0
import ftplib
import psycopg2
import sys
from helper import DBConnector

try:
    db_conn = DBConnector('default')
    cur = db_conn.getCursor()
    cur.execute(
        "CREATE TABLE files_list (id serial PRIMARY KEY, path varchar unique, insert_time timestamp);commit;"
    )
    del db_conn
except Exception, e:
    print "Unable create table:", e

db_conn = DBConnector('default')
curr = db_conn.getCursor()

ftp = ftplib.FTP("ftp.zakupki.gov.ru")
ftp.login("free", "free")

files = []


def ftp_walk(ftp):
    print 'Path:', ftp.pwd()
    dirs = ftp.nlst()
    for item in (path for path in dirs if path not in ('.', '..')):
        try:
            ftp.cwd(item)
            print 'Changed to', ftp.pwd()