cobweb-launcher 1.3.1__tar.gz → 1.3.2__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.
Files changed (77) hide show
  1. {cobweb-launcher-1.3.1/cobweb_launcher.egg-info → cobweb-launcher-1.3.2}/PKG-INFO +1 -1
  2. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/launchers/launcher_pro.py +2 -2
  3. cobweb-launcher-1.3.2/cobweb/schedulers/__init__.py +1 -0
  4. cobweb-launcher-1.3.2/cobweb/schedulers/scheduler_redis.py +69 -0
  5. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2/cobweb_launcher.egg-info}/PKG-INFO +1 -1
  6. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_launcher.egg-info/SOURCES.txt +2 -0
  7. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/setup.py +1 -1
  8. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/LICENSE +0 -0
  9. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/README.md +0 -0
  10. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/__init__.py +0 -0
  11. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/__init__.py +0 -0
  12. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/basic.py +0 -0
  13. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/common_queue.py +0 -0
  14. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/dotting.py +0 -0
  15. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/item.py +0 -0
  16. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/log.py +0 -0
  17. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/request.py +0 -0
  18. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/response.py +0 -0
  19. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/base/seed.py +0 -0
  20. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/constant.py +0 -0
  21. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/crawlers/__init__.py +0 -0
  22. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/crawlers/crawler.py +0 -0
  23. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/db/__init__.py +0 -0
  24. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/db/api_db.py +0 -0
  25. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/db/redis_db.py +0 -0
  26. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/exceptions/__init__.py +0 -0
  27. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/exceptions/oss_db_exception.py +0 -0
  28. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/launchers/__init__.py +0 -0
  29. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/launchers/launcher.py +0 -0
  30. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/launchers/launcher_air.py +0 -0
  31. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/launchers/launcher_api.py +0 -0
  32. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/pipelines/__init__.py +0 -0
  33. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/pipelines/pipeline.py +0 -0
  34. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/pipelines/pipeline_console.py +0 -0
  35. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/pipelines/pipeline_loghub.py +0 -0
  36. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/setting.py +0 -0
  37. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/utils/__init__.py +0 -0
  38. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/utils/bloom.py +0 -0
  39. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/utils/oss.py +0 -0
  40. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb/utils/tools.py +0 -0
  41. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/__init__.py +0 -0
  42. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/__init__.py +0 -0
  43. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/common_queue.py +0 -0
  44. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/decorators.py +0 -0
  45. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/item.py +0 -0
  46. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/log.py +0 -0
  47. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/request.py +0 -0
  48. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/response.py +0 -0
  49. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/base/seed.py +0 -0
  50. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/constant.py +0 -0
  51. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/crawlers/__init__.py +0 -0
  52. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/crawlers/crawler.py +0 -0
  53. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/db/__init__.py +0 -0
  54. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/db/api_db.py +0 -0
  55. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/db/redis_db.py +0 -0
  56. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/exceptions/__init__.py +0 -0
  57. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/exceptions/oss_db_exception.py +0 -0
  58. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/launchers/__init__.py +0 -0
  59. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/launchers/launcher.py +0 -0
  60. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/launchers/launcher_air.py +0 -0
  61. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/launchers/launcher_api.py +0 -0
  62. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/launchers/launcher_pro.py +0 -0
  63. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/pipelines/__init__.py +0 -0
  64. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/pipelines/pipeline.py +0 -0
  65. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/pipelines/pipeline_console.py +0 -0
  66. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/pipelines/pipeline_loghub.py +0 -0
  67. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/setting.py +0 -0
  68. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/utils/__init__.py +0 -0
  69. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/utils/bloom.py +0 -0
  70. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/utils/dotting.py +0 -0
  71. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/utils/oss.py +0 -0
  72. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_/utils/tools.py +0 -0
  73. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_launcher.egg-info/dependency_links.txt +0 -0
  74. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_launcher.egg-info/requires.txt +0 -0
  75. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/cobweb_launcher.egg-info/top_level.txt +0 -0
  76. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/setup.cfg +0 -0
  77. {cobweb-launcher-1.3.1 → cobweb-launcher-1.3.2}/test/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cobweb-launcher
3
- Version: 1.3.1
3
+ Version: 1.3.2
4
4
  Summary: spider_hole
5
5
  Home-page: https://github.com/Juannie-PP/cobweb
6
6
  Author: Juannie-PP
@@ -1,7 +1,7 @@
1
1
  import time
2
2
 
3
- from base import TaskQueue, Decorators
4
- from schedulers.scheduler_redis import RedisScheduler
3
+ from cobweb.base import TaskQueue, Decorators
4
+ from cobweb.schedulers import RedisScheduler
5
5
  from .launcher import Launcher
6
6
 
7
7
 
@@ -0,0 +1 @@
1
+ from .scheduler_redis import RedisScheduler
@@ -0,0 +1,69 @@
1
+ import threading
2
+ import time
3
+
4
+ # from cobweb.base import Seed
5
+ from cobweb.db import RedisDB
6
+
7
+
8
+ class RedisScheduler:
9
+
10
+ def __init__(self, task, project, scheduler_wait_seconds=30):
11
+ self._todo_key = "{%s:%s}:todo" % (project, task)
12
+ self._download_key = "{%s:%s}:download" % (project, task)
13
+ self._heartbeat_key = "heartbeat:%s_%s" % (project, task)
14
+ self._speed_control_key = "speed_control:%s_%s" % (project, task)
15
+ self._reset_lock_key = "lock:reset:%s_%s" % (project, task)
16
+ self._db = RedisDB()
17
+
18
+ self.scheduler_wait_seconds = scheduler_wait_seconds
19
+ self.working = threading.Event()
20
+
21
+ @property
22
+ def heartbeat(self):
23
+ return self._db.exists(self._heartbeat_key)
24
+
25
+ def set_heartbeat(self):
26
+ return self._db.setex(self._heartbeat_key, 5)
27
+
28
+ def schedule(self, key, count):
29
+ if not self._db.zcount(key, 0, "(1000"):
30
+ time.sleep(self.scheduler_wait_seconds)
31
+ else:
32
+ source = int(time.time())
33
+ members = self._db.members(key, source, count=count, _min=0, _max="(1000")
34
+ for member, priority in members:
35
+ # seed = Seed(member, priority=priority)
36
+ yield member.decode(), priority
37
+
38
+ def insert(self, key, items):
39
+ if items:
40
+ self._db.zadd(key, items, nx=True)
41
+
42
+ def reset(self, keys, reset_time=30):
43
+ if self._db.lock(self._reset_lock_key, t=120):
44
+
45
+ if isinstance(keys, str):
46
+ keys = [keys]
47
+
48
+ _min = reset_time - int(time.time()) if self.heartbeat else "-inf"
49
+
50
+ for key in keys:
51
+ self._db.members(key, 0, _min=_min, _max="(0")
52
+
53
+ if not self.heartbeat:
54
+ self.working.set()
55
+ time.sleep(10)
56
+
57
+ self._db.delete(self._reset_lock_key)
58
+
59
+ def refresh(self, key, items: dict[str, int]):
60
+ refresh_time = int(time.time())
61
+ its = {k: -refresh_time - v / 1000 for k, v in items}
62
+ self._db.zadd(key, item=its, xx=True)
63
+
64
+ def delete(self, key, values):
65
+ self._db.zrem(key, *values)
66
+
67
+
68
+
69
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cobweb-launcher
3
- Version: 1.3.1
3
+ Version: 1.3.2
4
4
  Summary: spider_hole
5
5
  Home-page: https://github.com/Juannie-PP/cobweb
6
6
  Author: Juannie-PP
@@ -29,6 +29,8 @@ cobweb/pipelines/__init__.py
29
29
  cobweb/pipelines/pipeline.py
30
30
  cobweb/pipelines/pipeline_console.py
31
31
  cobweb/pipelines/pipeline_loghub.py
32
+ cobweb/schedulers/__init__.py
33
+ cobweb/schedulers/scheduler_redis.py
32
34
  cobweb/utils/__init__.py
33
35
  cobweb/utils/bloom.py
34
36
  cobweb/utils/oss.py
@@ -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.3.1",
8
+ version="1.3.2",
9
9
  packages=find_packages(),
10
10
  url="https://github.com/Juannie-PP/cobweb",
11
11
  license="MIT",
File without changes