cobweb-launcher 1.2.9__tar.gz → 1.2.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cobweb-launcher might be problematic. Click here for more details.

Files changed (39) hide show
  1. {cobweb-launcher-1.2.9/cobweb_launcher.egg-info → cobweb-launcher-1.2.11}/PKG-INFO +1 -1
  2. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/launchers/launcher_pro.py +6 -3
  3. cobweb-launcher-1.2.11/cobweb/pipelines/pipeline.py +69 -0
  4. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11/cobweb_launcher.egg-info}/PKG-INFO +1 -1
  5. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/setup.py +1 -1
  6. cobweb-launcher-1.2.9/cobweb/pipelines/pipeline.py +0 -60
  7. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/LICENSE +0 -0
  8. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/README.md +0 -0
  9. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/__init__.py +0 -0
  10. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/__init__.py +0 -0
  11. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/common_queue.py +0 -0
  12. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/decorators.py +0 -0
  13. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/item.py +0 -0
  14. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/log.py +0 -0
  15. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/request.py +0 -0
  16. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/response.py +0 -0
  17. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/base/seed.py +0 -0
  18. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/constant.py +0 -0
  19. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/crawlers/__init__.py +0 -0
  20. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/crawlers/crawler.py +0 -0
  21. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/db/__init__.py +0 -0
  22. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/db/redis_db.py +0 -0
  23. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/exceptions/__init__.py +0 -0
  24. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/exceptions/oss_db_exception.py +0 -0
  25. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/launchers/__init__.py +0 -0
  26. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/launchers/launcher.py +0 -0
  27. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/launchers/launcher_air.py +0 -0
  28. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/pipelines/__init__.py +0 -0
  29. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/pipelines/pipeline_console.py +0 -0
  30. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/pipelines/pipeline_loghub.py +0 -0
  31. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/setting.py +0 -0
  32. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/utils/__init__.py +0 -0
  33. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/utils/oss.py +0 -0
  34. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb/utils/tools.py +0 -0
  35. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb_launcher.egg-info/SOURCES.txt +0 -0
  36. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb_launcher.egg-info/dependency_links.txt +0 -0
  37. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb_launcher.egg-info/requires.txt +0 -0
  38. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/cobweb_launcher.egg-info/top_level.txt +0 -0
  39. {cobweb-launcher-1.2.9 → cobweb-launcher-1.2.11}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cobweb-launcher
3
- Version: 1.2.9
3
+ Version: 1.2.11
4
4
  Summary: spider_hole
5
5
  Home-page: https://github.com/Juannie-PP/cobweb
6
6
  Author: Juannie-PP
@@ -125,15 +125,18 @@ class LauncherPro(Launcher):
125
125
  seeds.append(seed.to_string)
126
126
  if seeds:
127
127
  count = self._db.zrem(self._todo_key, *seeds)
128
- self.statistics(self._statistics_done_key, count)
128
+ if count:
129
+ self.statistics(self._statistics_done_key, count)
129
130
  self._remove_doing_seeds(seeds)
130
131
  if s_seeds:
131
132
  count = self._db.done([self._todo_key, self._done_key], *s_seeds)
132
- self.statistics(self._statistics_done_key, count)
133
+ if count:
134
+ self.statistics(self._statistics_done_key, count)
133
135
  self._remove_doing_seeds(s_seeds)
134
136
  if f_seeds:
135
137
  count = self._db.done([self._todo_key, self._fail_key], *f_seeds)
136
- self.statistics(self._statistics_fail_key, count)
138
+ if count:
139
+ self.statistics(self._statistics_fail_key, count)
137
140
  self._remove_doing_seeds(f_seeds)
138
141
 
139
142
  if status:
@@ -0,0 +1,69 @@
1
+ import time
2
+ import threading
3
+
4
+ from abc import ABC, abstractmethod
5
+ from cobweb.base import BaseItem, Queue, logger
6
+
7
+
8
+ class Pipeline(threading.Thread, ABC):
9
+
10
+ def __init__(
11
+ self,
12
+ stop: threading.Event,
13
+ pause: threading.Event,
14
+ upload: Queue, done: Queue,
15
+ upload_size: int,
16
+ wait_seconds: int
17
+ ):
18
+ super().__init__()
19
+ self._stop = stop
20
+ self._pause = pause
21
+ self._upload = upload
22
+ self._done = done
23
+
24
+ self.upload_size = upload_size
25
+ self.wait_seconds = wait_seconds
26
+
27
+ @abstractmethod
28
+ def build(self, item: BaseItem) -> dict:
29
+ pass
30
+
31
+ @abstractmethod
32
+ def upload(self, table: str, data: list) -> bool:
33
+ pass
34
+
35
+ def run(self):
36
+ while not self._stop.is_set():
37
+ if not self._upload.length:
38
+ time.sleep(self.wait_seconds)
39
+ continue
40
+ if self._upload.length < self.upload_size:
41
+ time.sleep(self.wait_seconds)
42
+ status = True
43
+ data_info, seeds = {}, []
44
+ try:
45
+ for _ in range(self.upload_size):
46
+ item = self._upload.pop()
47
+ if not item:
48
+ break
49
+ seeds.append(item.seed)
50
+ data = self.build(item)
51
+ data_info.setdefault(item.table, []).append(data)
52
+ for table, datas in data_info.items():
53
+ try:
54
+ self.upload(table, datas)
55
+ except Exception as e:
56
+ logger.info(e)
57
+ status = False
58
+ except Exception as e:
59
+ logger.info(e)
60
+ status = False
61
+ if not status:
62
+ for seed in seeds:
63
+ seed.params.seed_status = "deal model: fail"
64
+ if seeds:
65
+ self._done.push(seeds)
66
+
67
+ logger.info("upload pipeline close!")
68
+
69
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cobweb-launcher
3
- Version: 1.2.9
3
+ Version: 1.2.11
4
4
  Summary: spider_hole
5
5
  Home-page: https://github.com/Juannie-PP/cobweb
6
6
  Author: Juannie-PP
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setup(
7
7
  name="cobweb-launcher",
8
- version="1.2.9",
8
+ version="1.2.11",
9
9
  packages=find_packages(),
10
10
  url="https://github.com/Juannie-PP/cobweb",
11
11
  license="MIT",
@@ -1,60 +0,0 @@
1
- import time
2
- import threading
3
-
4
- from abc import ABC, abstractmethod
5
- from cobweb.base import BaseItem, Queue, logger
6
-
7
-
8
- class Pipeline(threading.Thread, ABC):
9
-
10
- def __init__(
11
- self,
12
- stop: threading.Event,
13
- pause: threading.Event,
14
- upload: Queue, done: Queue,
15
- upload_size: int,
16
- wait_seconds: int
17
- ):
18
- super().__init__()
19
- self._stop = stop
20
- self._pause = pause
21
- self._upload = upload
22
- self._done = done
23
-
24
- self.upload_size = upload_size
25
- self.wait_seconds = wait_seconds
26
-
27
- @abstractmethod
28
- def build(self, item: BaseItem) -> dict:
29
- pass
30
-
31
- @abstractmethod
32
- def upload(self, table: str, data: list) -> bool:
33
- pass
34
-
35
- def run(self):
36
- while not self._stop.is_set():
37
- status = self._upload.length < self.upload_size
38
- if status:
39
- time.sleep(self.wait_seconds)
40
- data_info, seeds = {}, []
41
- for _ in range(self.upload_size):
42
- item = self._upload.pop()
43
- if not item:
44
- break
45
- data = self.build(item)
46
- seeds.append(item.seed)
47
- data_info.setdefault(item.table, []).append(data)
48
- for table, datas in data_info.items():
49
- try:
50
- self.upload(table, datas)
51
- status = True
52
- except Exception as e:
53
- logger.info(e)
54
- status = False
55
- if status:
56
- self._done.push(seeds)
57
-
58
- logger.info("upload pipeline close!")
59
-
60
-