User decides when to take snapshot.
Raise exception if the size of pending req is large.

Before we blocked the send method.
Merge pull request #190 from EasonLiao/snapshot

Let user decides when to take snapshot