No Description http://gearman.org/

Ed Sabol c24d8998e4 Merge pull request #411 from esabol/address-CodeQL-gripe-about-uncontrolled-format-string 1 month ago
.github 728f3a5ab5 Added Alpine 3.19 build to GitHub Actions CI. (#410) 3 months ago
benchmark 4213a111ca Update build files to work with more modern autotools (#358) 2 years ago
bin cf739557f9 Issue #335: Tweaked the gearadmin help to make it less confusing. (#336) 2 years ago
docker a277aca658 Update Dockerfiles for latest gearmand version and other minor tweaks (#402) 3 months ago
docs 26a8bde23e Fix typo in task add function docs 2 years ago
examples 5d5cf65276 Fix typos found by Debian lintian 8 years ago
gearmand 4213a111ca Update build files to work with more modern autotools (#358) 2 years ago
libboost 4213a111ca Update build files to work with more modern autotools (#358) 2 years ago
libgearman 581f757f59 Fixing basic CodeQL alerts (#384) 1 year ago
libgearman-1.0 f1504398b7 Issue #63: libgearman patch to support SSL connections in Gearman PHP library 5 years ago
libgearman-server 3f9a48fb43 Addressed CodeQL gripe about uncontrolled format string in handling of the GEARMAND_PORT environment variable by changing how gearmand_log_gai_error() calls gearmand_log_perror(). 2 months ago
libgearmancore fb05e80af2 Fix building on MacOS 7 years ago
libhashkit 6fe74214a6 Issue #293: Bootstrap on Alpine 4 years ago
libhashkit-1.0 e7aa2faa8f Adding support for deriving the unique value based on the data that is supplied by the client. 12 years ago
libhostile d74a838999 Remove AX_DLOPEN and fix XML output for Junit. 10 years ago
libtest 6816e06571 Fixed CodeQL gripes with usage of c_str() pointers after the lifetime of the std::string objects. (#404) 3 months ago
m4 7be6334afa Add riscv64 support 1 year ago
man 4a7e8899d0 Fix for NOTPARALLEL issue on building docs. 10 years ago
rpm e20a202b00 Fix dist-rpm building to work with new versioning system also fixes Issue #148 6 years ago
scripts 32385ebd2a Tweak scripts/travis-linux.sh to fix clang-9 build 3 years ago
support a4afae7846 Additional fixes to address fallout from renaming HACKING to CONTRIBUTING.md 3 years ago
tests 207a5bfe45 Fixed reversed calloc arguments in internals tests discovered with gcc 14.1. 4 months ago
util 6816e06571 Fixed CodeQL gripes with usage of c_str() pointers after the lifetime of the std::string objects. (#404) 3 months ago
.bootstrap 9799194de0 Add bootstrap configure file. 12 years ago
.gitignore 44d58661c2 Add Dockerfiles for testing and for a working example (#327) 2 years ago
.quickly 6251b89c9c Merge in updates since .20, this includes new build configs. 13 years ago
.travis.yml ae929f61e4 Make compiler setting explicit for all builds in .travis.yml 3 years ago
AUTHORS 1e091d57b1 Update docs, credit John Ewart for epoch work (wahoo!), and a few other packing details. 13 years ago
CODE_OF_CONDUCT.md 5aeef31ceb Create CODE_OF_CONDUCT.md 3 years ago
CONTRIBUTING.md 8360eba76e Minor tweaks to CONTRIBUTING.md, mainly to trigger Travis CI build 3 years ago
COPYING 3740ff1fe2 Fix for bad copyright headers. 13 years ago
ChangeLog ad07f9dab9 Fix misspellings of "occurred" 4 years ago
GNUmakefile abf14c45ca Update for release. 10 years ago
Makefile.am 4213a111ca Update build files to work with more modern autotools (#358) 2 years ago
NEWS 66e9eb9419 Import from HG 16 years ago
PROTOCOL cfa05857aa Address Issue #196 by fixing the conversion of milliseconds to struct timeval 5 years ago
README.md b4dc33f07f Updated actions/configure-pages to v5 to address Node16 deprecation. Run deploy job on ubuntu-latest. Removed environment section from build job. Added explicity concurrency rules. Updated README.md to add a link to the latest gearmand documentation and made some other tweaks (http: -> https:, punctuation, grammar). 7 months ago
THANKS 893380c25f Fix for issue where PHP was not being handed memory it thought that it owned. 13 years ago
bootstrap.sh 14de19e2cc add Rocky to supported Linux distributions (#374) 1 year ago
configure.ac 23a7b86820 Issue #407: Made bootstrap compatible with autoconf 2.7.2. (#409) 3 months ago
version.m4 ab5d1dd034 Use git describe to determine version 8 years ago

README.md

gearmand

Build Status

The latest version of gearmand source code and versions 1.1.13 and later can be found at GitHub Repository. Older versions released before 1.1.13 can be found at Launchpad Repository.

You can grab the latest release distribution of Gearman from https://github.com/gearman/gearmand/releases. Unless otherwise specified, releases are GPG-signed by Clint Byrum, whose public key can be found at https://fewbar.com/clint-byrum-public-key/.

What Is Gearman?

Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. Gearman is the nervous system for how distributed processing communicates.

If you downloaded this package as a tar.gz distribution, you'll want to read the Getting Started section below or visit the more detailed web page Getting Started.

If you are interested in developing or submitting patches to the project, read the Contributing section below and check out the CONTRIBUTING.md file for Coding Style and COPYING for details on licensing.

Getting Started

If you want to work on the latest code, please read the file CONTRIBUTING.md.

To build a release version from a tarball (.tar.gz or .tgz), you can follow the normal:

Change into the directory where you saved the tarball and run:

tar xzf gearmand-X.Y.tar.gz
cd gearmand-X.Y

Then run the usual autoconfigure style build (you may need to use sudo to install):

./configure
make
make install

There are various dependencies that may be satisfied on Ubuntu by installing these packages:

sudo apt install automake autoconf libtool make curl gcc g++ git gperf     \ 
    libssl-dev libboost-all-dev libevent-dev libhiredis-dev libpq-dev      \ 
    libtokyocabinet-dev python3-sphinx uuid-dev

You can also run make test before installing to make sure everything checks out ok. You can also streamline the process of building and testing by running:

./configure && make && make test
make install

Once you have it installed, you can start the Gearman job server with:

gearmand --verbose INFO

This will start it while printing some verbose messages. To try running a job through it, look in the examples/ directory of this source and run:

./reverse_worker

Once that is running, you can run your first job with:

./reverse_client "Hello, Gearman!"

If all goes well, the reverse_worker application should have output:

Job=H:lap:1 Workload=Hello, Gearman! Result=!namraeG ,olleH

While the reverse_client returned:

Result=!namraeG ,olleH

There are a lot more details about gearmand at Getting Started.

If you want to start writing your own client and workers, be sure to check out the Developer API documentation.

For using and configuring the gearmand server, please check out the latest documentation.

There are also many other useful resources to help you put gearmand to work for you!

Enjoy!

Contributing

The current versions of geamand are maintained on our GitHub Repo for gearmand.

If you are not familiar with git, you can find more info at Getting Started with Git.

Please follow these instructions to clone, create a branch, and generate a pull request on that branch. More details on using GitHub can be found at GitHub Help.

  1. Clone the GitHub repository to your local file system:

    git clone https://github.com/gearman/gearmand
    

If you do not have access to create branches in the gearmand GitHub repository, you should fork the repository and clone your fork instead. Refer to Contributing to Open Source on GitHub for details.

  1. Next, think of a clear, descriptive branch name and then create a new branch and change to it:

    cd gearmand
    git checkout -b DESCRIPTIVE_BRANCH_NAME
    
  2. Once the tree is branched you will need to generate the "configure" script for autoconfigure.

    ./bootstrap.sh -a
    
  3. Finally, you are ready to run tests, make changes to the code, commit and push them to GitHub, and generate a pull request on your branch so we can consider your changes.

You can learn more about how to Create a Pull Request and Create a Pull Request from a Fork.

But Wait! There's More!

Once you have made your changes there are two additional make targets to build release ready distributions:

To generate a tarball distribution of your code:

make dist

Or to generate an RPM distribution use:

make rpm

Thanks and keep hacking!

Cheers,
-Brian
Seattle, WA.