Skip to content

Releases: sogou/workflow

workflow v0.11.6

30 Sep 15:08
196e4dd
Compare
Choose a tag to compare

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

29 Jul 08:48
Compare
Choose a tag to compare

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

22 May 10:12
fa85db0
Compare
Choose a tag to compare

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

14 Mar 14:36
Compare
Choose a tag to compare

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

03 Jan 09:25
Compare
Choose a tag to compare

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

01 Nov 08:35
Compare
Choose a tag to compare

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

04 Sep 12:29
d60e0b5
Compare
Choose a tag to compare

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

06 Jul 09:35
9633d58
Compare
Choose a tag to compare

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

05 May 15:00
baba965
Compare
Choose a tag to compare

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

24 Feb 17:39
Compare
Choose a tag to compare

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.