public void heartbeat(String fileOffset) throws IOException {
        logProgress(fileOffset, true);
    }
@Test
    public void testHeartbeat() throws Exception {
        Path file1 = new Path(filesDir + Path.SEPARATOR + "file1");
        fs.create(file1).close();

        // acquire lock on file1
        FileLock lock1 = FileLock.tryLock(fs, file1, locksDir, "spout1");
        assertNotNull(lock1);
        assertTrue(fs.exists(lock1.getLockFile()));

        ArrayList<String> lines = readTextFile(lock1.getLockFile());
        assertEquals(1, lines.size(), "heartbeats appear to be missing");

        // heartbeat upon it
        lock1.heartbeat("1");
        lock1.heartbeat("2");
        lock1.heartbeat("3");

        lines = readTextFile(lock1.getLockFile());
        assertEquals(4, lines.size(), "heartbeats appear to be missing");

        lock1.heartbeat("4");
        lock1.heartbeat("5");
        lock1.heartbeat("6");

        lines = readTextFile(lock1.getLockFile());
        assertEquals(7, lines.size(), "heartbeats appear to be missing");

        lock1.release();
        lines = readTextFile(lock1.getLockFile());
        assertNull(lines);
        assertFalse(fs.exists(lock1.getLockFile()));
    }