':param fuzzable_request: A fuzzable_request instance that contains
(among other things) the URL to test.'

@runonce(exc_class=RunOnce)
def discover(self, fuzzable_request):

    methods = [self._fingerprint_URLScan, self._fingerprint_ModSecurity, self._fingerprint_SecureIIS, self._fingerprint_Airlock, self._fingerprint_Barracuda, self._fingerprint_CloudFlare, self._fingerprint_DenyAll, self._fingerprint_dotDefender, self._fingerprint_F5ASM, self._fingerprint_F5TrafficShield, self._fingerprint_FortiWeb, self._fingerprint_IBMWebSphere, self._fingerprint_Incapsula, self._fingerprint_Profense, self._fingerprint_TEROS, self._fingerprint_NetContinuum, self._fingerprint_BinarySec, self._fingerprint_HyperGuard]
    args_iter = izip(methods, repeat(fuzzable_request))
    self.worker_pool.map_multi_args(self._worker, args_iter)
