Skip to main content

Distributed script crawler framework.

Project description

Distributed script crawler framework.

# Simply connecting redis on the worker side of the library provides an-
# executable power for distributed scripts
# All function executions on the sender end will be piped to redis,
# and the worker end will be pulled out of the pipe to execute.
# Support multi-task simultaneous execution! Each execution maintains a taskid,
# and different tasks maintain their configuration space according to the-
# taskid when they are executed simultaneously.

worker

# if in start_worker.py
import vredis
s = vredis.Worker.from_settings(host='xx.xx.xx.xx',port=6666,password='vredis')
s.start()

# if in bash
C:\Users\Administrator>vredis worker -ho xx.xx.xx.xx -po 6666 -pa vredis -db 0
# if not set param. use defaults param.
# default host localhost
# default port 6379
# default password None
# default db 0

sender

from vredis import pipe

pipe.connect(host='xx.xx.xx.xx',port=6666,password='vredis')
pipe.DEBUG = True # True/False. worker prints on the worker_console.

# very low code intrusion, no decorator or even complete barrier-free execution
# The decorated function becomes a send function and is sent to the task pipeline
@pipe
def some(i):
    import time, random
    rd = random.randint(1,2)
    time.sleep(rd)
    print('use func:{}, rd time:{}'.format(i,rd))
    return 123
    # return a data and wraps them in JSON data and passes them in redis.

@pipe.table('mytable') # if not set table, use "default" as tablename
def some2(i):
    print('use func2:{}'.format(i))
    return 333,444
    # if return is a generator or list or tuple,
    # First, he iterates out the parameters and wraps them in JSON data and passes them in.
    # data collection space use tablename <= default tablename space "default".

for i in range(100):
    some(i) # first send task it will get a taskid. info will log out.
    some2(i)

get_data

from vredis import pipe

pipe.connect(host='xx.xx.xx.xx',port=6666,password='vredis')
for i in pipe.from_table(taskid=26):
    print(i)

# the second param is tablename. default tablename is "default"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vredis.py-1.2.5-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file vredis.py-1.2.5-py3-none-any.whl.

File metadata

  • Download URL: vredis.py-1.2.5-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for vredis.py-1.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a37d6918e4d40c5df9c763967bff60d8da559f900ba23cb374597e4117e39a54
MD5 adec7b8945ba1bfc6e5332023878e24b
BLAKE2b-256 3f90c14ac8a92d393ed5dd245d7aa85d741e0ac24adff2c9d8b2d6ea857e22dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page