Beispiel #1
0
def main():
    if len(sys.argv) < 4 or len(sys.argv) > 6:
        print("Usage: __name__ jobs url1 url2 [working_dir [accounts_file]]")
        print(
            "  Example: __name__ 4 http://127.0.0.1:1886 http://127.0.0.1:1996 [get_account_history [accounts]]"
        )
        print("  set jobs to 0 if you want use all processors")
        print("  url1 is reference url for list_accounts")
        exit()

    global wdir
    global errors

    jobs = int(sys.argv[1])
    if jobs <= 0:
        import multiprocessing
        jobs = multiprocessing.cpu_count()

    url1 = sys.argv[2]
    url2 = sys.argv[3]

    if len(sys.argv) > 4:
        wdir = Path(sys.argv[4])

    accounts_file = sys.argv[5] if len(sys.argv) > 5 else ""

    if accounts_file != "":
        name = re.compile("[^\r^\n]*")
        try:
            with open(accounts_file, "rt") as file:
                accounts = [name.match(account).group(0) for account in file]
        except:
            exit("Cannot open file: " + accounts_file)
    else:
        accounts = list_accounts(url1)

    length = len(accounts)

    if length == 0:
        exit("There are no any account!")

    create_wdir()

    print(str(length) + " accounts")

    if jobs > length:
        jobs = length

    print("setup:")
    print("  jobs: {}".format(jobs))
    print("  url1: {}".format(url1))
    print("  url2: {}".format(url2))
    print("  wdir: {}".format(wdir))
    print("  accounts_file: {}".format(accounts_file))

    if jobs > 1:
        first = 0
        last = length - 1
        accounts_per_job = length // jobs

        with ProcessPoolExecutor(max_workers=jobs) as executor:
            for i in range(jobs - 1):
                executor.submit(compare_results, url1, url2,
                                accounts[first:first + accounts_per_job - 1])
                first = first + accounts_per_job
            executor.submit(compare_results, url1, url2, accounts[first:last])
    else:
        compare_results(url1, url2, accounts)

    exit(errors)
Beispiel #2
0
def main():
    if len(sys.argv) < 4 or len(sys.argv) > 6:
        print("Usage: __name__ jobs url1 url2 [working_dir [accounts_file]]")
        print(
            "  Example: __name__ 4 http://127.0.0.1:8090 http://127.0.0.1:8091 [get_account_history [accounts]]"
        )
        print("  set jobs to 0 if you want use all processors")
        print("  url1 is reference url for list_accounts")
        exit()

    global wdir
    global errors

    jobs = int(sys.argv[1])
    if jobs <= 0:
        import multiprocessing
        jobs = multiprocessing.cpu_count()

    url1 = sys.argv[2]
    url2 = sys.argv[3]

    if len(sys.argv) > 4:
        wdir = Path(sys.argv[4])

    accounts_file = sys.argv[5] if len(sys.argv) > 5 else ""

    if accounts_file != "":
        try:
            with open(accounts_file, "rt") as file:
                accounts = file.readlines()
        except:
            exit("Cannot open file: " + accounts_file)
    else:
        accounts = list_accounts(url1)

    length = len(accounts)

    if length == 0:
        exit("There are no any account!")

    create_wdir()

    print(str(length) + " accounts")

    if jobs > length:
        jobs = length

    print("setup:")
    print("  jobs: {}".format(jobs))
    print("  url1: {}".format(url1))
    print("  url2: {}".format(url2))
    print("  wdir: {}".format(wdir))
    print("  accounts_file: {}".format(accounts_file))

    if jobs > 1:
        first = 0
        last = length
        accounts_per_job = length // jobs

        with ProcessPoolExecutor(max_workers=jobs) as executor:
            for i in range(jobs - 1):
                future = executor.submit(
                    compare_results, url1, url2,
                    accounts[first:first + accounts_per_job])
                future.add_done_callback(future_end_cb)
                first = first + accounts_per_job
            future = executor.submit(compare_results, url1, url2,
                                     accounts[first:last])
            future.add_done_callback(future_end_cb)
    else:
        errors = (compare_results(url1, url2, accounts) == False)

    exit(errors)
def main():
  if len( sys.argv ) < 4 or len( sys.argv ) > 6:
    print( "Usage: __name__ jobs url1 url2 [working_dir [accounts_file]]" )
    print( "  Example: __name__ 4 http://127.0.0.1:8090 http://127.0.0.1:8091 [get_account_history [accounts]]" )
    print( "  set jobs to 0 if you want use all processors" )
    print( "  url1 is reference url for list_accounts" )
    exit ()

  global wdir
  global errors
    
  jobs = int(sys.argv[1])
  if jobs <= 0:
    import multiprocessing
    jobs = multiprocessing.cpu_count()
    
  url1 = sys.argv[2]
  url2 = sys.argv[3]
  
  if len( sys.argv ) > 4:
    wdir = Path(sys.argv[4])
    
  accounts_file = sys.argv[5] if len( sys.argv ) > 5 else ""

  if accounts_file != "":
    try:
      with open(accounts_file, "rt") as file:
        accounts = file.readlines()
    except:
      exit("Cannot open file: " + accounts_file)
  else:
    accounts = list_accounts(url1)

  length = len(accounts)
  
  if length == 0:
    exit("There are no any account!")
    
  create_wdir()

  print( str(length) + " accounts" )

  if jobs > length:
    jobs = length

  print( "setup:" )
  print( "  jobs: {}".format(jobs) )
  print( "  url1: {}".format(url1) )
  print( "  url2: {}".format(url2) )
  print( "  wdir: {}".format(wdir) )
  print( "  accounts_file: {}".format(accounts_file) )
  
  if jobs > 1:
    first = 0
    last = length
    accounts_per_job = length // jobs

    with ProcessPoolExecutor(max_workers=jobs) as executor:
      for i in range(jobs-1):
        future = executor.submit(compare_results, url1, url2, accounts[first : first+accounts_per_job])
        future.add_done_callback(future_end_cb)
        first = first + accounts_per_job
      future = executor.submit(compare_results, url1, url2, accounts[first : last])
      future.add_done_callback(future_end_cb)
  else:
    errors = (compare_results(url1, url2, accounts) == False)

  exit( errors )