]>
Commit | Line | Data |
---|---|---|
64b91c44 AG |
1 | # |
2 | # Conditional build: | |
3 | %bcond_with tests # perform "make test" | |
4 | # | |
64b91c44 AG |
5 | %define pdir TheSchwartz |
6 | Summary: TheSchwartz - reliable job queue | |
7 | #Summary(pl.UTF-8): | |
8 | Name: perl-TheSchwartz | |
9 | Version: 1.07 | |
10 | Release: 1 | |
11 | # same as perl | |
12 | License: GPL v1+ or Artistic | |
13 | Group: Development/Languages/Perl | |
eafdd3b3 | 14 | Source0: http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/%{pdir}-%{version}.tar.gz |
64b91c44 AG |
15 | # Source0-md5: c5c4c2a0c8a43f2c5e698e8d849f2382 |
16 | URL: http://search.cpan.org/dist/TheSchwartz/ | |
17 | BuildRequires: perl-devel >= 1:5.8.0 | |
18 | BuildRequires: rpm-perlprov >= 4.1-13 | |
64b91c44 | 19 | BuildRequires: perl(Data::ObjectDriver) >= 0.04 |
64b91c44 AG |
20 | BuildArch: noarch |
21 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
22 | ||
23 | %description | |
24 | TheSchwartz is a reliable job queue system. Your application can put jobs into | |
25 | the system, and your worker processes can pull jobs from the queue atomically | |
26 | to perform. Failed jobs can be left in the queue to retry later. | |
27 | ||
28 | Abilities specify what jobs a worker process can perform. Abilities are the | |
29 | names of TheSchwartz::Worker subclasses, as in the synopsis: the MyWorker | |
30 | class name is used to specify that the worker script can perform the job. When | |
31 | using the TheSchwartz client's work functions, the class-ability duality | |
32 | is used to automatically dispatch to the proper class to do the actual work. | |
33 | ||
34 | TheSchwartz clients will also prefer to do jobs for unused abilities before | |
35 | reusing a particular ability, to avoid exhausting the supply of one kind of job | |
36 | while jobs of other types stack up. | |
37 | ||
38 | Some jobs with high setup times can be performed more efficiently if a group of | |
39 | related jobs are performed together. TheSchwartz offers a facility to | |
40 | coalesce jobs into groups, which a properly constructed worker can find and | |
41 | perform at once. For example, if your worker were delivering email, you might | |
42 | store the domain name from the recipient's address as the coalescing value. The | |
43 | worker that grabs that job could then batch deliver all the mail for that | |
44 | domain once it connects to that domain's mail server. | |
45 | ||
46 | ||
47 | ||
48 | # %description -l pl.UTF-8 | |
49 | # TODO | |
50 | ||
51 | %prep | |
52 | %setup -q -n %{pdir}-%{version} | |
53 | ||
54 | %build | |
55 | %{__perl} Makefile.PL \ | |
56 | INSTALLDIRS=vendor | |
57 | %{__make} | |
58 | ||
59 | %{?with_tests:%{__make} test} | |
60 | ||
61 | %install | |
62 | rm -rf $RPM_BUILD_ROOT | |
63 | ||
64 | %{__make} pure_install \ | |
65 | DESTDIR=$RPM_BUILD_ROOT | |
66 | ||
67 | %clean | |
68 | rm -rf $RPM_BUILD_ROOT | |
69 | ||
70 | %files | |
71 | %defattr(644,root,root,755) | |
72 | %doc CHANGES doc extras | |
73 | %attr(755,root,root) %{_bindir}/schwartzmon | |
74 | %{perl_vendorlib}//*.pm | |
75 | %{perl_vendorlib}/TheSchwartz/ | |
76 | %{_mandir}/man3/* |