We consider a problem of {\em repeatedly} scheduling $n$ jobs on
$m$ parallel machines. Each job is associated with a profit,
gained each time the job is completed, and the goal is to maximize
the average profit per time unit. Once the processing of a job is
completed, it goes on {\em vacation} and returns to the system,
ready to be processed again, only after its vacation is over. This
problem has many applications, in production planning, machine
maintenance, media-on-demand and databases query processing, among
others.
We show that the problem is NP-hard already for jobs with unit
processing times and unit profits, and develop approximation
algorithms, as well as optimal algorithms for certain subclasses
of instances. In particular, we show that a preemptive greedy
algorithm achieves a ratio of $2$ to the optimal for instances
with arbitrary processing times and arbitrary profits. For the
special case of unit processing times, we present a
$1.67$-approximation algorithm for instances with arbitrary
profits, and a $1.39$-approximation algorithm for instances where
all jobs have the same (unit) profits. For the latter case, we
also show that when the load generated by an instance is
sufficiently large (in terms of $n$ and $m$), any algorithm that
uses no intended idle times yields an optimal schedule.