Coder Social home page Coder Social logo

tarlueissjuu / python-flock Goto Github PK

View Code? Open in Web Editor NEW

This project forked from noxiouz/python-flock

0.0 1.0 0.0 100 KB

Analog of flock. It uses Zookeeper to acquire/release lock

License: GNU Lesser General Public License v3.0

Shell 0.71% Python 99.29%

python-flock's Introduction

zk-flock Build Status

You can use zk-flock to run programs in a cluster under a distributed lock to limit overall amount of instances.

Configuration

You have to write the configuration file /etc/distributed-flock.json with the following content:

{
    "host": ["hostname1:2181","hostname2:2181","hostname3:2181"],
    "timeout": 5,
    "app_id": "my_application_namespace",
    "sleep": "ON",    //ON or OFF - Default OFF
    "maxla": 30,      // If >=0 -> max loadaverage for work. Default -1
    "logger": {
            "path": "/tmp/zkflock.log",
            "level": "INFO",
            "zklevel": "ERROR"
    },
    "auth": {
        "scheme": "digest",
        "data": "noxiouz:password"
    }
}
  • host - list of Zookeeper nodes
  • timeout - timeout for zookeper connection (sec)
  • app_id - namespace for your application in Zookeeper. This means that the lock will be stored in Zookeeper with path likes /app_id/your_lock_name
  • sleep - Sleep before work. Default: "OFF". Switch "ON" by -s (--sleep).
  • maxla - Maximal load average. Use if >=0. Default: -1. Set by -m (--maxla).

Logging

  • path - path to log file (default: /dev/null)
  • level - logging level of zk-flock (default: INFO)
  • zklevel - logging level of Zookeeper Client (default: WARN)

Both loglevels are one of values: ERROR, WARN, INFO, DEBUG

Usage

To run the application under the supervision of the zk-flock use the command:

zk-flock <pidname> <application command>

If your application requires command-line arguments enclose it in double quotes:

zk-flock my_test_lock "bash /home/user/test.sh arg1 arg2 arg3"

For attempting to lock lasted for a specific time, use the -w option (--wait) setting the time in seconds. Add key -d or --daemonize to starts this appliction as daemon.

Use -p or --pdeathsig to specify a signal that will be sent if the master process died. By default the signal is SIGTERM.

Non Linux usage warning

If you kill zk-flock application with kill -9, the lock will be released, but this will not stop your application.

python-flock's People

Contributors

noxiouz avatar syndicut avatar tarlueissjuu avatar gennadyspb avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.