public function submit($item, $idNum)
    {
        if (!array_key_exists($idNum, $this->sysvQs)) {
            $this->sysvQs[$idNum] =
                msg_get_queue($this->getSysvKey($idNum));
        }
        $result = @msg_send(
            $this->sysvQs[$idNum],
            self::$typeDirect,
            $item
        );
        if ($result === false) {
            // Try to put the content in a temp file and send the filename.
            $tempFile = tempnam(sys_get_temp_dir(), 'Item');
            $result = file_put_contents($tempFile, serialize($item));
            if ($result === false) {
                throw new \RuntimeException(
                    "Failed to write to $tempFile while submiting the item"
                );
            }
            $result = @msg_send(
                $this->sysvQs[$idNum],
                self::$typeFile,
                $tempFile
            );
            if ($result === false) {
                @unlink($tempFile);
                throw new \RuntimeException(
                    "Failed to submit the filename: $tempFile"
                );
            }
        }
    }