You might want to take a look at monit
(official site).
It's easily configurable to watch for high CPU usage and restart processes when needed.
A simple example (you should configure it according to your system paths and needs):
check process saslauth with pidfile /var/run/saslauthd/saslauthd.pid
group mail
start program = "/etc/init.d/saslauthd start"
stop program = "/etc/init.d/saslauthd stop"
if cpu > 90% for 2 cycles then restart
Where (taken from the manual):
CPU([user|system|wait]) is the percent of time the system spend in user or
kernel space and I/O. The user/system/wait modifier is optional, if not
used, the total system cpu usage is tested
And a cycle is is equal to the number of seconds in the set daemon
config options.