David Blume commited on 2020-12-30 12:02:16
Showing 2 changed files, with 7 additions and 3 deletions.
... | ... |
@@ -1,5 +1,6 @@ |
1 | 1 |
#!/usr/bin/env python3 |
2 | 2 |
# From https://pybay.com/site_media/slides/raymond2017-keynote/process.html |
3 |
+import os |
|
3 | 4 |
import urllib.request |
4 | 5 |
import urllib.error |
5 | 6 |
from multiprocessing.pool import ThreadPool |
... | ... |
@@ -30,10 +31,13 @@ def sitesize(url: str): |
30 | 31 |
return url, len(page) |
31 | 32 |
except urllib.error.HTTPError as e: |
32 | 33 |
return url, str(e) |
34 |
+ except urllib.error.URLError as e: |
|
35 |
+ return url, "On macOS? Try another python3. " + str(e) |
|
33 | 36 |
|
34 | 37 |
|
35 | 38 |
def run(): |
36 |
- pool = ThreadPool(2) |
|
39 |
+ # Network bound: Use max(); CPU bound: Use min() |
|
40 |
+ pool = ThreadPool(max(len(sites), os.cpu_count())) |
|
37 | 41 |
for result in pool.imap_unordered(sitesize, sites): |
38 | 42 |
print(result) |
39 | 43 |
|
... | ... |
@@ -35,12 +35,12 @@ def set_v_print(verbose: bool): |
35 | 35 |
@timeit |
36 | 36 |
def main(debug: bool): |
37 | 37 |
start_time = time.time() |
38 |
- localdir = os.path.abspath(os.path.dirname(sys.argv[0])) |
|
38 |
+ script_dir = os.path.abspath(os.path.dirname(sys.argv[0])) |
|
39 | 39 |
v_print("Running counter...") |
40 | 40 |
counter.counter.run() |
41 | 41 |
v_print("Running sitesize...") |
42 | 42 |
sitesize.sitesize.run() |
43 |
- print(f'Done in {localdir}.') |
|
43 |
+ print(f'{sys.argv[0]} is in {script_dir}.') |
|
44 | 44 |
|
45 | 45 |
|
46 | 46 |
if __name__ == '__main__': |
47 | 47 |