cobweb-launcher 1.2.61__py3-none-any.whl → 1.2.63__py3-none-any.whl

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.
@@ -83,7 +83,7 @@ class Crawler(threading.Thread):
83
83
  if isinstance(item, BaseItem):
84
84
  self._upload_data(item)
85
85
  elif isinstance(item, Seed):
86
- self._add_seed(item)
86
+ self._add_seed((seed, item))
87
87
  elif isinstance(item, str) and item == DealModel.poll:
88
88
  self._set_seed(seed)
89
89
  elif isinstance(item, str) and item == DealModel.done:
@@ -173,8 +173,8 @@ class Launcher(threading.Thread):
173
173
  def _upload_data(self, data, **kwargs):
174
174
  self.__LAUNCHER_QUEUE__["upload"].push(data, **kwargs)
175
175
 
176
- def _add_seed(self, seed, **kwargs):
177
- self.__LAUNCHER_QUEUE__["new"].push(seed, **kwargs)
176
+ def _add_seed(self, seeds, **kwargs):
177
+ self.__LAUNCHER_QUEUE__["new"].push(seeds, direct_insertion=True, **kwargs)
178
178
 
179
179
  def _delete_seed(self, seed, **kwargs):
180
180
  self.__LAUNCHER_QUEUE__["done"].push(seed, **kwargs)
@@ -13,15 +13,20 @@ class LauncherAir(Launcher):
13
13
 
14
14
  @check_pause
15
15
  def _insert(self):
16
- seeds = {}
16
+ new_seeds = {}
17
+ del_seeds = set()
17
18
  status = self.__LAUNCHER_QUEUE__['new'].length < self._new_queue_max_size
18
19
  for _ in range(self._new_queue_max_size):
19
- seed = self.__LAUNCHER_QUEUE__['new'].pop()
20
- if not seed:
20
+ seed_tuple = self.__LAUNCHER_QUEUE__['new'].pop()
21
+ if not seed_tuple:
21
22
  break
22
- seeds[seed.to_string] = seed.params.priority
23
- if seeds:
24
- self.__LAUNCHER_QUEUE__['todo'].push(seeds)
23
+ seed, new_seed = seed_tuple
24
+ new_seeds[new_seed.to_string] = new_seed.params.priority
25
+ del_seeds.add(seed.to_string)
26
+ if new_seeds:
27
+ self.__LAUNCHER_QUEUE__['todo'].push(new_seeds)
28
+ if del_seeds:
29
+ self.__LAUNCHER_QUEUE__['done'].push(del_seeds)
25
30
  if status:
26
31
  time.sleep(self._new_queue_wait_seconds)
27
32
 
@@ -49,8 +49,11 @@ class LauncherApi(Launcher):
49
49
  if (self._speed_control and self.__LAUNCHER_QUEUE__["todo"].length and
50
50
  not self._db.auto_incr(self._speed_control_key, t=self._time_window, limit=self._spider_max_count)):
51
51
  expire_time = self._db.ttl(self._speed_control_key)
52
- logger.info(f"Too fast! Please wait {expire_time} seconds...")
53
- time.sleep(expire_time / 2)
52
+ if isinstance(expire_time, int) and expire_time <= -1:
53
+ self._db.delete(self._speed_control_key)
54
+ elif isinstance(expire_time, int):
55
+ logger.info(f"Too fast! Please wait {expire_time} seconds...")
56
+ time.sleep(expire_time / 2)
54
57
  return None
55
58
  seed = self.__LAUNCHER_QUEUE__["todo"].pop()
56
59
  return seed
@@ -106,14 +109,20 @@ class LauncherApi(Launcher):
106
109
  """
107
110
  添加新种子到redis队列中
108
111
  """
109
- seeds = {}
112
+ new_seeds = {}
113
+ del_seeds = set()
110
114
  status = self.__LAUNCHER_QUEUE__['new'].length < self._new_queue_max_size
111
115
  for _ in range(self._new_queue_max_size):
112
- seed = self.__LAUNCHER_QUEUE__['new'].pop()
113
- if seed:
114
- seeds[seed.to_string] = seed.params.priority
115
- if seeds:
116
- self._db.zadd(self._todo_key, seeds, nx=True)
116
+ seed_tuple = self.__LAUNCHER_QUEUE__['new'].pop()
117
+ if not seed_tuple:
118
+ break
119
+ seed, new_seed = seed_tuple
120
+ new_seeds[new_seed.to_string] = new_seed.params.priority
121
+ del_seeds.add(seed.to_string)
122
+ if new_seeds:
123
+ self._db.zadd(self._todo_key, new_seeds, nx=True)
124
+ if del_seeds:
125
+ self.__LAUNCHER_QUEUE__['done'].push(del_seeds)
117
126
  if status:
118
127
  time.sleep(self._new_queue_wait_seconds)
119
128
 
@@ -47,7 +47,7 @@ class LauncherPro(Launcher):
47
47
  spider_speed = self._db.get(self._speed_control_key)
48
48
  if int(spider_speed or 0) > self._spider_max_count:
49
49
  expire_time = self._db.ttl(self._speed_control_key)
50
- if expire_time <= -1:
50
+ if isinstance(expire_time, int) and expire_time <= -1:
51
51
  self._db.delete(self._speed_control_key)
52
52
  elif isinstance(expire_time, int):
53
53
  logger.info(f"Too fast! Please wait {expire_time} seconds...")
@@ -108,14 +108,20 @@ class LauncherPro(Launcher):
108
108
  """
109
109
  添加新种子到redis队列中
110
110
  """
111
- seeds = {}
111
+ new_seeds = {}
112
+ del_seeds = set()
112
113
  status = self.__LAUNCHER_QUEUE__['new'].length < self._new_queue_max_size
113
114
  for _ in range(self._new_queue_max_size):
114
- seed = self.__LAUNCHER_QUEUE__['new'].pop()
115
- if seed:
116
- seeds[seed.to_string] = seed.params.priority
117
- if seeds:
118
- self._db.zadd(self._todo_key, seeds, nx=True)
115
+ seed_tuple = self.__LAUNCHER_QUEUE__['new'].pop()
116
+ if not seed_tuple:
117
+ break
118
+ seed, new_seed = seed_tuple
119
+ new_seeds[new_seed.to_string] = new_seed.params.priority
120
+ del_seeds.add(seed.to_string)
121
+ if new_seeds:
122
+ self._db.zadd(self._todo_key, new_seeds, nx=True)
123
+ if del_seeds:
124
+ self.__LAUNCHER_QUEUE__['done'].push(del_seeds)
119
125
  if status:
120
126
  time.sleep(self._new_queue_wait_seconds)
121
127
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cobweb-launcher
3
- Version: 1.2.61
3
+ Version: 1.2.63
4
4
  Summary: spider_hole
5
5
  Home-page: https://github.com/Juannie-PP/cobweb
6
6
  Author: Juannie-PP
@@ -13,7 +13,7 @@ cobweb/base/response.py,sha256=eB1DWMXFCpn3cJ3yzgCRU1WeZAdayGDohRgdjdMUFN4,406
13
13
  cobweb/base/seed.py,sha256=A-F1urjbE5hYNWTCwq3sUV4nrxlK_RGMoCmjBmIwYsI,3158
14
14
  cobweb/crawlers/__init__.py,sha256=msvkB9mTpsgyj8JfNMsmwAcpy5kWk_2NrO1Adw2Hkw0,29
15
15
  cobweb/crawlers/base_crawler.py,sha256=ee_WSDnPQpPTk6wlFuY2UEx5L3hcsAZFcr6i3GLSry8,5751
16
- cobweb/crawlers/crawler.py,sha256=pePDGroD6JJAht5QTU51L7MkFIY4ob9TKpznZ2wUmsw,8965
16
+ cobweb/crawlers/crawler.py,sha256=kbpgBllmA2ve3Hp-XvVH89t2q5G39i-m7it5xJ1p1WE,8973
17
17
  cobweb/crawlers/file_crawler.py,sha256=2Sjbdgxzqd41WykKUQE3QQlGai3T8k-pmHNmPlTchjQ,4454
18
18
  cobweb/db/__init__.py,sha256=uZwSkd105EAwYo95oZQXAfofUKHVIAZZIPpNMy-hm2Q,56
19
19
  cobweb/db/api_db.py,sha256=bDc5dJQxq4z04h70KUTHd0OqUOEY7Cm3wcNJZtTvJIM,3015
@@ -22,10 +22,10 @@ cobweb/db/redis_db_new.py,sha256=F09LWVjtC2JFdCaKatZ2bAOLKbsnes85_nZRe2dtSIc,469
22
22
  cobweb/exceptions/__init__.py,sha256=E9SHnJBbhD7fOgPFMswqyOf8SKRDrI_i25L0bSpohvk,32
23
23
  cobweb/exceptions/oss_db_exception.py,sha256=iP_AImjNHT3-Iv49zCFQ3rdLnlvuHa3h2BXApgrOYpA,636
24
24
  cobweb/launchers/__init__.py,sha256=qMuVlQcjErVK67HyKFZEsXf_rfZD5ODjx1QucSCKMOM,114
25
- cobweb/launchers/launcher.py,sha256=y1a72sANV-oJVpy_BI7BwKy7fY4AnpHqJK3t6czoCts,7896
26
- cobweb/launchers/launcher_air.py,sha256=KAk_M8F3029cXYe7m4nn3Nzyi89lbxJ2cqZjqW8iZ0E,2832
27
- cobweb/launchers/launcher_api.py,sha256=ydx_xrOjGMhGTDdyN3Oxy5EHUvvbvetNj3mCX1GlNsw,8205
28
- cobweb/launchers/launcher_pro.py,sha256=0Z3E1HA_D-yy_7hD7Q-HkYdy4v4AHYwyrR4i6HErIBo,8147
25
+ cobweb/launchers/launcher.py,sha256=aR1cnQymjQQUJe-W_dRoQTd9t3Qav9QkLDzeWW7i0xE,7921
26
+ cobweb/launchers/launcher_air.py,sha256=qdcxq41I9zN5snEpMUUNEQNTtUiZM1Hw_3N9zu4PuAs,3058
27
+ cobweb/launchers/launcher_api.py,sha256=bllvBDi2FqPtdcR2mhcdRr7CYwO5GiNVlo1p0gOCHhA,8632
28
+ cobweb/launchers/launcher_pro.py,sha256=o2selUZaHBh_kIs1MUgu-EuueWARV8HqQUg-VoVN5yg,8428
29
29
  cobweb/pipelines/__init__.py,sha256=zSUsGtx6smbs2iXBXvYynReKSgky-3gjqaAtKVnA_OU,105
30
30
  cobweb/pipelines/pipeline.py,sha256=4TJLX0sUHRxYndF5A4Vs5btUGI-wigkOcFvhTW1hLXI,2009
31
31
  cobweb/pipelines/pipeline_console.py,sha256=NEh-4zhuVAQOqwXLsqeb-rcNZ9_KXFUpL3otUTL5qBs,754
@@ -38,8 +38,8 @@ cobweb/utils/bloom.py,sha256=vng-YbKgh9HbtpAWYf_nkUSbfVTOj40aqUUejRYlsCU,1752
38
38
  cobweb/utils/dotting.py,sha256=mVICaa26R-dQ4JGmPK-kkR6QjX38QiRewXZnGb2DCIc,1784
39
39
  cobweb/utils/oss.py,sha256=6x_ugXanh1R-6ZylQzUDQh4OeFZHujhWFCOxbzy53JY,3984
40
40
  cobweb/utils/tools.py,sha256=5JEaaAwYoV9Sdla2UBIJn6faUBuXmxUMagm9ck6FVqs,1253
41
- cobweb_launcher-1.2.61.dist-info/LICENSE,sha256=z1rxSIGOyzcSb3orZxFPxzx-0C1vTocmswqBNxpKfEk,1063
42
- cobweb_launcher-1.2.61.dist-info/METADATA,sha256=vtAEmhDSAlOHdtb9XfsPaMGCtXk4z-zXao5IifOxBhY,6510
43
- cobweb_launcher-1.2.61.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
44
- cobweb_launcher-1.2.61.dist-info/top_level.txt,sha256=4GETBGNsKqiCUezmT-mJn7tjhcDlu7nLIV5gGgHBW4I,7
45
- cobweb_launcher-1.2.61.dist-info/RECORD,,
41
+ cobweb_launcher-1.2.63.dist-info/LICENSE,sha256=z1rxSIGOyzcSb3orZxFPxzx-0C1vTocmswqBNxpKfEk,1063
42
+ cobweb_launcher-1.2.63.dist-info/METADATA,sha256=N2ZvAiGMrpAXrCqpjt0IJce5atZzTyCTJkDLoTMzLvQ,6510
43
+ cobweb_launcher-1.2.63.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
44
+ cobweb_launcher-1.2.63.dist-info/top_level.txt,sha256=4GETBGNsKqiCUezmT-mJn7tjhcDlu7nLIV5gGgHBW4I,7
45
+ cobweb_launcher-1.2.63.dist-info/RECORD,,