Releases: sogou/workflow
Releases · sogou/workflow
workflow v0.11.6
New Feature
- Add WFRedisSubscriber to support redis subscribing.
Improvements
- Communicator::push() supports client session.
- WFTaskFactory::XXX_by_name() functions return tasks that waked up.
- Redis client task returns task error when missing password.
Bug Fixes
- Fix 'sendto()' failure on a connected UDP socket.
- Communicator::push() bug with multiple message wrappers.
workflow v0.11.5
New Features
- Enable increasing and decreasing computing threads.
- Support HTTP authentication.
- Support preadv/pwritev file IO task on macOS.
- Graph task supports canceling node's successors.
Improvements
- Decreasing handler threads dynamicly when using wait group or WFFuture.
- Enable CommSession::push() on an active session.
Bug Fixes
- Fix SSL_write error bug when sending large message.
- Fix push() bug when having message wrappers.
- Fix feedback() error of UDP client message.
workflow v0.11.4
New Features
- Add WFSelectorTask.
- Support setting DNS message's records. Enable users to make a fully functional DNS server by using WFDnsServer.
- Enable setting specific SSL_CTX for each network task.
- WFMySQLConnection and WFKafkaClient enable setting a specific SSL_CTX.
- JSON parser adds 'json_value_copy()'.
Improvements
- More compatible with some rediculous HTTP server.
- Simplify Communicator's codes.
Bug Fixes
- Fix bug when creating a client task with IPv6 address string.
- Fix kafka client bug when a broker is IPv6.
- Fix DNS parser potensial recursive bug.
workflow v0.11.3
New Features
- Support UDP server.
- Enable erasing http message's header.
Improvements
- Optimize JSON parsing.
- Support specifying server's transport layer protocol (TCP, UDP, SCTP).
- Reduce default DNS cache ttl.
- Kafka client supports set_offset_timestamp for KafkaToppar in automatic mode.
Bug Fixes
- Fix dead lock bug when upstream referring to a host name.
- Fix some kafka client little problems.
workflow v0.11.2
New Features
- Add
watch_timeout
for network task. - Add
address_family
for endpoint params. Enable users to specify target's IP address family, including DNS server. - Add 'guard' task wrapper for global non-block locking.
- Reduce max encoding IO vectors from 8192 to 2048 and reduce 96KB stack using.
Improvements
- Optimize named timer's speed. About 3 times faster.
- Reduce light-weighted thread task's overhead.
- Optimize DNS resolving a lot. Reduce redundant DNS requests when querying a single host name parallelly.
- Optimize JSON parser when parsing JSON numbers.
- Simpify poller code and optimize timeout checking.
Bug Fixes
- Fix kafka client bug when enable retry.
workflow v0.11.1
New Features
- Add cancelable timer. You may name a timer and cancel by name.
- Add named mailbox task. You can send message to a mailbox task by it's name.
- Add WFFacilities::ReplyGuard as an alternive way to implement asynchronous server.
- Support kafka client over TLS.
- Support redis username for redis server 6.0.
Impovements
- Refactor named task's implementation to make it faster.
- Avoid stack overflow when running out of file discriptors.
- Optimize JSON parser by parsing JSON number manually. About 3 times faster than 'strtod()'.
Bug Fixes:
- Fix WFMySQLConnection crash bug when running multiple tasks concorrently.
- Fix kafka authentication bug by encoding for kafka SASL username and password.
- Fix kafka client bug that does not retry.
- Fix bug of 'WFTaskFactory::signal_by_name()' with 'max'.
Incompatible changes
- Timed thread/go task's state in callback was changed to WFT_STATE_SYS_ERROR with error ETIMEDOUT when timeout. The original state was WFT_STATE_ABORTED. Please check timeout by using 'if (task->get_state() != WFT_STATE_SUCCESS)', which is compatible with both behaviors.
- Remove WFMultiThreadTask.
workflow v0.10.9
New Features
- Add WFNetworkTask::closed() for checking if server task's connection was closed.
- Add TLVMessage to simplify implementing self-defined protocols.
- Add interfaces to enable getting HttpMessage's output body.
Improvements
- Correct server task's
noreply()
behavior by closing connection earlier at origial reply time. - Optimize MySQL parser.
Bug Fixes
- Fix MySQL EBADMSG error by fixing the bug when parsing OK packet.
- Fix MySQL bug when a trasaction's connection reset.
workflow v0.10.8
New Features
- Add global setting fio_max_events.
- Add more algorithm tasks.
- Enable users to signal a maximum number of named conditional.
Improvements
- Make WFServerBase::create_listen_fd() protected.
- Enable users to subclass WFHttpServerTask.
- Optimize kafka task to reduce memory use when all brokers down.
Bug Fixes
- Crash when multiple processes use file IO task.
workflow v0.10.7
New Features
- Support series specific data by deriving SeriesWork
- Support obtaining series' parallel task that it belong to
- Poller supports 'recvfrom' operation
Improvements
- Optimize SSLWrapper
- Optimize kafka client's speed
- Simplify WFMailboxTask
- 'listen' function's backlog at least 4096
Bug Fixes
- Fix kafka client bug when cgroup is written concurrently
- Fix kafka client sending extra bytes bug
- Fix kafka throttle_time bug when the server is under version 3
- Fix URI parser by when parsing imcomplete IPv6 host name
workflow v0.10.6
New Features
- Fully support MySQL 8 sha256_password and caching_sha2_password authentication plugin!
Improvements
- Removed all OpenSSL 3.0 deprecated crypto functions.
- Use FVN-1a hash to generate communication target's key, better performance and lower collision rate.
- Make DNS request IDs random.
- Improve xmake.
- Improve CI.
Bug Fixes
- Fix Kafka client's bug when the 'kafka' scheme is not all lower case.